#pragma once 

#include "neaacdec.h"

 const complex_t cfft_tab_512[] = {{FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.999924719333649), FRAC_CONST(0.012271538376808)},
                                         {FRAC_CONST(0.999698817729950), FRAC_CONST(0.024541229009628)},   {FRAC_CONST(0.999322354793549), FRAC_CONST(0.036807224154472)},
                                         {FRAC_CONST(0.998795449733734), FRAC_CONST(0.049067676067352)},   {FRAC_CONST(0.998118102550507), FRAC_CONST(0.061320740729570)},
                                         {FRAC_CONST(0.997290432453156), FRAC_CONST(0.073564566671848)},   {FRAC_CONST(0.996312618255615), FRAC_CONST(0.085797317326069)},
                                         {FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954)},   {FRAC_CONST(0.993906974792480), FRAC_CONST(0.110222205519676)},
                                         {FRAC_CONST(0.992479562759399), FRAC_CONST(0.122410677373409)},   {FRAC_CONST(0.990902662277222), FRAC_CONST(0.134580716490746)},
                                         {FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116)},   {FRAC_CONST(0.987301409244537), FRAC_CONST(0.158858150243759)},
                                         {FRAC_CONST(0.985277652740479), FRAC_CONST(0.170961901545525)},   {FRAC_CONST(0.983105480670929), FRAC_CONST(0.183039888739586)},
                                         {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},   {FRAC_CONST(0.978317379951477), FRAC_CONST(0.207111388444901)},
                                         {FRAC_CONST(0.975702106952667), FRAC_CONST(0.219101235270500)},   {FRAC_CONST(0.972939968109131), FRAC_CONST(0.231058120727539)},
                                         {FRAC_CONST(0.970031261444092), FRAC_CONST(0.242980197072029)},   {FRAC_CONST(0.966976463794708), FRAC_CONST(0.254865676164627)},
                                         {FRAC_CONST(0.963776051998138), FRAC_CONST(0.266712784767151)},   {FRAC_CONST(0.960430502891541), FRAC_CONST(0.278519690036774)},
                                         {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},   {FRAC_CONST(0.953306019306183), FRAC_CONST(0.302005946636200)},
                                         {FRAC_CONST(0.949528157711029), FRAC_CONST(0.313681751489639)},   {FRAC_CONST(0.945607304573059), FRAC_CONST(0.325310319662094)},
                                         {FRAC_CONST(0.941544055938721), FRAC_CONST(0.336889863014221)},   {FRAC_CONST(0.937339007854462), FRAC_CONST(0.348418682813644)},
                                         {FRAC_CONST(0.932992815971375), FRAC_CONST(0.359895050525665)},   {FRAC_CONST(0.928506076335907), FRAC_CONST(0.371317207813263)},
                                         {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.919113874435425), FRAC_CONST(0.393992066383362)},
                                         {FRAC_CONST(0.914209723472595), FRAC_CONST(0.405241340398788)},   {FRAC_CONST(0.909167945384979), FRAC_CONST(0.416429579257965)},
                                         {FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516)},   {FRAC_CONST(0.898674488067627), FRAC_CONST(0.438616245985031)},
                                         {FRAC_CONST(0.893224298954010), FRAC_CONST(0.449611335992813)},   {FRAC_CONST(0.887639641761780), FRAC_CONST(0.460538715124130)},
                                         {FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251)},   {FRAC_CONST(0.876070082187653), FRAC_CONST(0.482183754444122)},
                                         {FRAC_CONST(0.870086967945099), FRAC_CONST(0.492898225784302)},   {FRAC_CONST(0.863972842693329), FRAC_CONST(0.503538370132446)},
                                         {FRAC_CONST(0.857728600502014), FRAC_CONST(0.514102756977081)},   {FRAC_CONST(0.851355195045471), FRAC_CONST(0.524589717388153)},
                                         {FRAC_CONST(0.844853579998016), FRAC_CONST(0.534997642040253)},   {FRAC_CONST(0.838224709033966), FRAC_CONST(0.545324981212616)},
                                         {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.824589252471924), FRAC_CONST(0.565731823444366)},
                                         {FRAC_CONST(0.817584812641144), FRAC_CONST(0.575808227062225)},   {FRAC_CONST(0.810457170009613), FRAC_CONST(0.585797905921936)},
                                         {FRAC_CONST(0.803207516670227), FRAC_CONST(0.595699310302734)},   {FRAC_CONST(0.795836925506592), FRAC_CONST(0.605511009693146)},
                                         {FRAC_CONST(0.788346409797668), FRAC_CONST(0.615231633186340)},   {FRAC_CONST(0.780737221240997), FRAC_CONST(0.624859511852264)},
                                         {FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733)},   {FRAC_CONST(0.765167236328125), FRAC_CONST(0.643831551074982)},
                                         {FRAC_CONST(0.757208824157715), FRAC_CONST(0.653172850608826)},   {FRAC_CONST(0.749136388301849), FRAC_CONST(0.662415802478790)},
                                         {FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401)},   {FRAC_CONST(0.732654273509979), FRAC_CONST(0.680601000785828)},
                                         {FRAC_CONST(0.724247097969055), FRAC_CONST(0.689540565013886)},   {FRAC_CONST(0.715730786323547), FRAC_CONST(0.698376297950745)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.698376238346100), FRAC_CONST(0.715730845928192)},
                                         {FRAC_CONST(0.689540505409241), FRAC_CONST(0.724247097969055)},   {FRAC_CONST(0.680601000785828), FRAC_CONST(0.732654273509979)},
                                         {FRAC_CONST(0.671558916568756), FRAC_CONST(0.740951180458069)},   {FRAC_CONST(0.662415742874146), FRAC_CONST(0.749136388301849)},
                                         {FRAC_CONST(0.653172791004181), FRAC_CONST(0.757208883762360)},   {FRAC_CONST(0.643831551074982), FRAC_CONST(0.765167295932770)},
                                         {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},   {FRAC_CONST(0.624859452247620), FRAC_CONST(0.780737280845642)},
                                         {FRAC_CONST(0.615231573581696), FRAC_CONST(0.788346409797668)},   {FRAC_CONST(0.605511009693146), FRAC_CONST(0.795836925506592)},
                                         {FRAC_CONST(0.595699310302734), FRAC_CONST(0.803207516670227)},   {FRAC_CONST(0.585797846317291), FRAC_CONST(0.810457170009613)},
                                         {FRAC_CONST(0.575808167457581), FRAC_CONST(0.817584812641144)},   {FRAC_CONST(0.565731823444366), FRAC_CONST(0.824589312076569)},
                                         {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},   {FRAC_CONST(0.545324981212616), FRAC_CONST(0.838224709033966)},
                                         {FRAC_CONST(0.534997642040253), FRAC_CONST(0.844853579998016)},   {FRAC_CONST(0.524589657783508), FRAC_CONST(0.851355195045471)},
                                         {FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659)},   {FRAC_CONST(0.503538429737091), FRAC_CONST(0.863972842693329)},
                                         {FRAC_CONST(0.492898195981979), FRAC_CONST(0.870086967945099)},   {FRAC_CONST(0.482183724641800), FRAC_CONST(0.876070141792297)},
                                         {FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318)},   {FRAC_CONST(0.460538715124130), FRAC_CONST(0.887639641761780)},
                                         {FRAC_CONST(0.449611306190491), FRAC_CONST(0.893224298954010)},   {FRAC_CONST(0.438616186380386), FRAC_CONST(0.898674488067627)},
                                         {FRAC_CONST(0.427555114030838), FRAC_CONST(0.903989315032959)},   {FRAC_CONST(0.416429549455643), FRAC_CONST(0.909168004989624)},
                                         {FRAC_CONST(0.405241280794144), FRAC_CONST(0.914209783077240)},   {FRAC_CONST(0.393991947174072), FRAC_CONST(0.919113874435425)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.371317148208618), FRAC_CONST(0.928506076335907)},
                                         {FRAC_CONST(0.359894961118698), FRAC_CONST(0.932992815971375)},   {FRAC_CONST(0.348418682813644), FRAC_CONST(0.937339007854462)},
                                         {FRAC_CONST(0.336889833211899), FRAC_CONST(0.941544055938721)},   {FRAC_CONST(0.325310230255127), FRAC_CONST(0.945607364177704)},
                                         {FRAC_CONST(0.313681662082672), FRAC_CONST(0.949528217315674)},   {FRAC_CONST(0.302005946636200), FRAC_CONST(0.953306019306183)},
                                         {FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718)},   {FRAC_CONST(0.278519600629807), FRAC_CONST(0.960430562496185)},
                                         {FRAC_CONST(0.266712754964828), FRAC_CONST(0.963776051998138)},   {FRAC_CONST(0.254865646362305), FRAC_CONST(0.966976463794708)},
                                         {FRAC_CONST(0.242980122566223), FRAC_CONST(0.970031261444092)},   {FRAC_CONST(0.231058135628700), FRAC_CONST(0.972939968109131)},
                                         {FRAC_CONST(0.219101220369339), FRAC_CONST(0.975702106952667)},   {FRAC_CONST(0.207111328840256), FRAC_CONST(0.978317379951477)},
                                         {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},   {FRAC_CONST(0.183039888739586), FRAC_CONST(0.983105480670929)},
                                         {FRAC_CONST(0.170961856842041), FRAC_CONST(0.985277652740479)},   {FRAC_CONST(0.158858075737953), FRAC_CONST(0.987301409244537)},
                                         {FRAC_CONST(0.146730497479439), FRAC_CONST(0.989176511764526)},   {FRAC_CONST(0.134580686688423), FRAC_CONST(0.990902662277222)},
                                         {FRAC_CONST(0.122410625219345), FRAC_CONST(0.992479562759399)},   {FRAC_CONST(0.110222116112709), FRAC_CONST(0.993906974792480)},
                                         {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},   {FRAC_CONST(0.085797272622585), FRAC_CONST(0.996312618255615)},
                                         {FRAC_CONST(0.073564492166042), FRAC_CONST(0.997290432453156)},   {FRAC_CONST(0.061320748180151), FRAC_CONST(0.998118102550507)},
                                         {FRAC_CONST(0.049067649990320), FRAC_CONST(0.998795449733734)},   {FRAC_CONST(0.036807164549828), FRAC_CONST(0.999322414398193)},
                                         {FRAC_CONST(0.024541135877371), FRAC_CONST(0.999698817729950)},   {FRAC_CONST(0.012271529063582), FRAC_CONST(0.999924719333649)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.012271616607904), FRAC_CONST(0.999924719333649)},
                                         {FRAC_CONST(-0.024541223421693), FRAC_CONST(0.999698817729950)},  {FRAC_CONST(-0.036807250231504), FRAC_CONST(0.999322354793549)},
                                         {FRAC_CONST(-0.049067739397287), FRAC_CONST(0.998795449733734)},  {FRAC_CONST(-0.061320833861828), FRAC_CONST(0.998118102550507)},
                                         {FRAC_CONST(-0.073564574122429), FRAC_CONST(0.997290432453156)},  {FRAC_CONST(-0.085797362029552), FRAC_CONST(0.996312618255615)},
                                         {FRAC_CONST(-0.098017223179340), FRAC_CONST(0.995184719562531)},  {FRAC_CONST(-0.110222205519676), FRAC_CONST(0.993906974792480)},
                                         {FRAC_CONST(-0.122410707175732), FRAC_CONST(0.992479503154755)},  {FRAC_CONST(-0.134580776095390), FRAC_CONST(0.990902602672577)},
                                         {FRAC_CONST(-0.146730571985245), FRAC_CONST(0.989176511764526)},  {FRAC_CONST(-0.158858165144920), FRAC_CONST(0.987301409244537)},
                                         {FRAC_CONST(-0.170961946249008), FRAC_CONST(0.985277652740479)},  {FRAC_CONST(-0.183039978146553), FRAC_CONST(0.983105480670929)},
                                         {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},  {FRAC_CONST(-0.207111418247223), FRAC_CONST(0.978317379951477)},
                                         {FRAC_CONST(-0.219101309776306), FRAC_CONST(0.975702106952667)},  {FRAC_CONST(-0.231058210134506), FRAC_CONST(0.972939908504486)},
                                         {FRAC_CONST(-0.242980197072029), FRAC_CONST(0.970031261444092)},  {FRAC_CONST(-0.254865705966949), FRAC_CONST(0.966976463794708)},
                                         {FRAC_CONST(-0.266712844371796), FRAC_CONST(0.963776051998138)},  {FRAC_CONST(-0.278519690036774), FRAC_CONST(0.960430502891541)},
                                         {FRAC_CONST(-0.290284723043442), FRAC_CONST(0.956940293312073)},  {FRAC_CONST(-0.302006036043167), FRAC_CONST(0.953306019306183)},
                                         {FRAC_CONST(-0.313681721687317), FRAC_CONST(0.949528157711029)},  {FRAC_CONST(-0.325310319662094), FRAC_CONST(0.945607304573059)},
                                         {FRAC_CONST(-0.336889922618866), FRAC_CONST(0.941544055938721)},  {FRAC_CONST(-0.348418772220612), FRAC_CONST(0.937338948249817)},
                                         {FRAC_CONST(-0.359895050525665), FRAC_CONST(0.932992815971375)},  {FRAC_CONST(-0.371317237615585), FRAC_CONST(0.928506076335907)},
                                         {FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796)},  {FRAC_CONST(-0.393992036581039), FRAC_CONST(0.919113874435425)},
                                         {FRAC_CONST(-0.405241340398788), FRAC_CONST(0.914209723472595)},  {FRAC_CONST(-0.416429519653320), FRAC_CONST(0.909168004989624)},
                                         {FRAC_CONST(-0.427555084228516), FRAC_CONST(0.903989315032959)},  {FRAC_CONST(-0.438616245985031), FRAC_CONST(0.898674428462982)},
                                         {FRAC_CONST(-0.449611365795136), FRAC_CONST(0.893224298954010)},  {FRAC_CONST(-0.460538804531097), FRAC_CONST(0.887639582157135)},
                                         {FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674)},  {FRAC_CONST(-0.482183903455734), FRAC_CONST(0.876070022583008)},
                                         {FRAC_CONST(-0.492898166179657), FRAC_CONST(0.870087027549744)},  {FRAC_CONST(-0.503538370132446), FRAC_CONST(0.863972842693329)},
                                         {FRAC_CONST(-0.514102756977081), FRAC_CONST(0.857728600502014)},  {FRAC_CONST(-0.524589717388153), FRAC_CONST(0.851355135440826)},
                                         {FRAC_CONST(-0.534997701644897), FRAC_CONST(0.844853520393372)},  {FRAC_CONST(-0.545325100421906), FRAC_CONST(0.838224649429321)},
                                         {FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637)},  {FRAC_CONST(-0.565731763839722), FRAC_CONST(0.824589312076569)},
                                         {FRAC_CONST(-0.575808167457581), FRAC_CONST(0.817584812641144)},  {FRAC_CONST(-0.585797905921936), FRAC_CONST(0.810457170009613)},
                                         {FRAC_CONST(-0.595699369907379), FRAC_CONST(0.803207516670227)},  {FRAC_CONST(-0.605511128902435), FRAC_CONST(0.795836865901947)},
                                         {FRAC_CONST(-0.615231692790985), FRAC_CONST(0.788346350193024)},  {FRAC_CONST(-0.624859631061554), FRAC_CONST(0.780737102031708)},
                                         {FRAC_CONST(-0.634393274784088), FRAC_CONST(0.773010492324829)},  {FRAC_CONST(-0.643831551074982), FRAC_CONST(0.765167236328125)},
                                         {FRAC_CONST(-0.653172850608826), FRAC_CONST(0.757208824157715)},  {FRAC_CONST(-0.662415802478790), FRAC_CONST(0.749136328697205)},
                                         {FRAC_CONST(-0.671559035778046), FRAC_CONST(0.740951061248779)},  {FRAC_CONST(-0.680601119995117), FRAC_CONST(0.732654154300690)},
                                         {FRAC_CONST(-0.689540684223175), FRAC_CONST(0.724246978759766)},  {FRAC_CONST(-0.698376238346100), FRAC_CONST(0.715730845928192)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.715730845928192), FRAC_CONST(0.698376238346100)},
                                         {FRAC_CONST(-0.724247157573700), FRAC_CONST(0.689540505409241)},  {FRAC_CONST(-0.732654333114624), FRAC_CONST(0.680600941181183)},
                                         {FRAC_CONST(-0.740951240062714), FRAC_CONST(0.671558856964111)},  {FRAC_CONST(-0.749136507511139), FRAC_CONST(0.662415623664856)},
                                         {FRAC_CONST(-0.757208824157715), FRAC_CONST(0.653172850608826)},  {FRAC_CONST(-0.765167295932770), FRAC_CONST(0.643831551074982)},
                                         {FRAC_CONST(-0.773010492324829), FRAC_CONST(0.634393274784088)},  {FRAC_CONST(-0.780737280845642), FRAC_CONST(0.624859452247620)},
                                         {FRAC_CONST(-0.788346469402313), FRAC_CONST(0.615231513977051)},  {FRAC_CONST(-0.795836985111237), FRAC_CONST(0.605510950088501)},
                                         {FRAC_CONST(-0.803207635879517), FRAC_CONST(0.595699131488800)},  {FRAC_CONST(-0.810457170009613), FRAC_CONST(0.585797846317291)},
                                         {FRAC_CONST(-0.817584812641144), FRAC_CONST(0.575808167457581)},  {FRAC_CONST(-0.824589312076569), FRAC_CONST(0.565731763839722)},
                                         {FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479)},  {FRAC_CONST(-0.838224768638611), FRAC_CONST(0.545324862003326)},
                                         {FRAC_CONST(-0.844853639602661), FRAC_CONST(0.534997463226318)},  {FRAC_CONST(-0.851355314254761), FRAC_CONST(0.524589538574219)},
                                         {FRAC_CONST(-0.857728600502014), FRAC_CONST(0.514102756977081)},  {FRAC_CONST(-0.863972842693329), FRAC_CONST(0.503538370132446)},
                                         {FRAC_CONST(-0.870087027549744), FRAC_CONST(0.492898136377335)},  {FRAC_CONST(-0.876070141792297), FRAC_CONST(0.482183694839478)},
                                         {FRAC_CONST(-0.881921350955963), FRAC_CONST(0.471396625041962)},  {FRAC_CONST(-0.887639701366425), FRAC_CONST(0.460538566112518)},
                                         {FRAC_CONST(-0.893224298954010), FRAC_CONST(0.449611365795136)},  {FRAC_CONST(-0.898674488067627), FRAC_CONST(0.438616245985031)},
                                         {FRAC_CONST(-0.903989315032959), FRAC_CONST(0.427555054426193)},  {FRAC_CONST(-0.909168004989624), FRAC_CONST(0.416429489850998)},
                                         {FRAC_CONST(-0.914209783077240), FRAC_CONST(0.405241221189499)},  {FRAC_CONST(-0.919113874435425), FRAC_CONST(0.393991917371750)},
                                         {FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127)},  {FRAC_CONST(-0.928506076335907), FRAC_CONST(0.371317237615585)},
                                         {FRAC_CONST(-0.932992815971375), FRAC_CONST(0.359895050525665)},  {FRAC_CONST(-0.937339007854462), FRAC_CONST(0.348418653011322)},
                                         {FRAC_CONST(-0.941544115543365), FRAC_CONST(0.336889803409576)},  {FRAC_CONST(-0.945607364177704), FRAC_CONST(0.325310200452805)},
                                         {FRAC_CONST(-0.949528217315674), FRAC_CONST(0.313681602478027)},  {FRAC_CONST(-0.953306078910828), FRAC_CONST(0.302005797624588)},
                                         {FRAC_CONST(-0.956940352916718), FRAC_CONST(0.290284723043442)},  {FRAC_CONST(-0.960430502891541), FRAC_CONST(0.278519690036774)},
                                         {FRAC_CONST(-0.963776051998138), FRAC_CONST(0.266712725162506)},  {FRAC_CONST(-0.966976463794708), FRAC_CONST(0.254865586757660)},
                                         {FRAC_CONST(-0.970031261444092), FRAC_CONST(0.242980077862740)},  {FRAC_CONST(-0.972939968109131), FRAC_CONST(0.231057971715927)},
                                         {FRAC_CONST(-0.975702166557312), FRAC_CONST(0.219101071357727)},  {FRAC_CONST(-0.978317379951477), FRAC_CONST(0.207111403346062)},
                                         {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},  {FRAC_CONST(-0.983105480670929), FRAC_CONST(0.183039844036102)},
                                         {FRAC_CONST(-0.985277652740479), FRAC_CONST(0.170961812138557)},  {FRAC_CONST(-0.987301409244537), FRAC_CONST(0.158858031034470)},
                                         {FRAC_CONST(-0.989176511764526), FRAC_CONST(0.146730333566666)},  {FRAC_CONST(-0.990902662277222), FRAC_CONST(0.134580522775650)},
                                         {FRAC_CONST(-0.992479503154755), FRAC_CONST(0.122410699725151)},  {FRAC_CONST(-0.993906974792480), FRAC_CONST(0.110222198069096)},
                                         {FRAC_CONST(-0.995184719562531), FRAC_CONST(0.098017096519470)},  {FRAC_CONST(-0.996312618255615), FRAC_CONST(0.085797227919102)},
                                         {FRAC_CONST(-0.997290492057800), FRAC_CONST(0.073564447462559)},  {FRAC_CONST(-0.998118102550507), FRAC_CONST(0.061320584267378)},
                                         {FRAC_CONST(-0.998795449733734), FRAC_CONST(0.049067486077547)},  {FRAC_CONST(-0.999322354793549), FRAC_CONST(0.036807239055634)},
                                         {FRAC_CONST(-0.999698817729950), FRAC_CONST(0.024541210383177)},  {FRAC_CONST(-0.999924719333649), FRAC_CONST(0.012271485291421)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.999698817729950), FRAC_CONST(0.024541229009628)},
                                         {FRAC_CONST(0.998795449733734), FRAC_CONST(0.049067676067352)},   {FRAC_CONST(0.997290432453156), FRAC_CONST(0.073564566671848)},
                                         {FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954)},   {FRAC_CONST(0.992479562759399), FRAC_CONST(0.122410677373409)},
                                         {FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116)},   {FRAC_CONST(0.985277652740479), FRAC_CONST(0.170961901545525)},
                                         {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},   {FRAC_CONST(0.975702106952667), FRAC_CONST(0.219101235270500)},
                                         {FRAC_CONST(0.970031261444092), FRAC_CONST(0.242980197072029)},   {FRAC_CONST(0.963776051998138), FRAC_CONST(0.266712784767151)},
                                         {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},   {FRAC_CONST(0.949528157711029), FRAC_CONST(0.313681751489639)},
                                         {FRAC_CONST(0.941544055938721), FRAC_CONST(0.336889863014221)},   {FRAC_CONST(0.932992815971375), FRAC_CONST(0.359895050525665)},
                                         {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.914209723472595), FRAC_CONST(0.405241340398788)},
                                         {FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516)},   {FRAC_CONST(0.893224298954010), FRAC_CONST(0.449611335992813)},
                                         {FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251)},   {FRAC_CONST(0.870086967945099), FRAC_CONST(0.492898225784302)},
                                         {FRAC_CONST(0.857728600502014), FRAC_CONST(0.514102756977081)},   {FRAC_CONST(0.844853579998016), FRAC_CONST(0.534997642040253)},
                                         {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.817584812641144), FRAC_CONST(0.575808227062225)},
                                         {FRAC_CONST(0.803207516670227), FRAC_CONST(0.595699310302734)},   {FRAC_CONST(0.788346409797668), FRAC_CONST(0.615231633186340)},
                                         {FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733)},   {FRAC_CONST(0.757208824157715), FRAC_CONST(0.653172850608826)},
                                         {FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401)},   {FRAC_CONST(0.724247097969055), FRAC_CONST(0.689540565013886)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.689540505409241), FRAC_CONST(0.724247097969055)},
                                         {FRAC_CONST(0.671558916568756), FRAC_CONST(0.740951180458069)},   {FRAC_CONST(0.653172791004181), FRAC_CONST(0.757208883762360)},
                                         {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},   {FRAC_CONST(0.615231573581696), FRAC_CONST(0.788346409797668)},
                                         {FRAC_CONST(0.595699310302734), FRAC_CONST(0.803207516670227)},   {FRAC_CONST(0.575808167457581), FRAC_CONST(0.817584812641144)},
                                         {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},   {FRAC_CONST(0.534997642040253), FRAC_CONST(0.844853579998016)},
                                         {FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659)},   {FRAC_CONST(0.492898195981979), FRAC_CONST(0.870086967945099)},
                                         {FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318)},   {FRAC_CONST(0.449611306190491), FRAC_CONST(0.893224298954010)},
                                         {FRAC_CONST(0.427555114030838), FRAC_CONST(0.903989315032959)},   {FRAC_CONST(0.405241280794144), FRAC_CONST(0.914209783077240)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.359894961118698), FRAC_CONST(0.932992815971375)},
                                         {FRAC_CONST(0.336889833211899), FRAC_CONST(0.941544055938721)},   {FRAC_CONST(0.313681662082672), FRAC_CONST(0.949528217315674)},
                                         {FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718)},   {FRAC_CONST(0.266712754964828), FRAC_CONST(0.963776051998138)},
                                         {FRAC_CONST(0.242980122566223), FRAC_CONST(0.970031261444092)},   {FRAC_CONST(0.219101220369339), FRAC_CONST(0.975702106952667)},
                                         {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},   {FRAC_CONST(0.170961856842041), FRAC_CONST(0.985277652740479)},
                                         {FRAC_CONST(0.146730497479439), FRAC_CONST(0.989176511764526)},   {FRAC_CONST(0.122410625219345), FRAC_CONST(0.992479562759399)},
                                         {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},   {FRAC_CONST(0.073564492166042), FRAC_CONST(0.997290432453156)},
                                         {FRAC_CONST(0.049067649990320), FRAC_CONST(0.998795449733734)},   {FRAC_CONST(0.024541135877371), FRAC_CONST(0.999698817729950)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.998795449733734), FRAC_CONST(0.049067676067352)},
                                         {FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954)},   {FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116)},
                                         {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},   {FRAC_CONST(0.970031261444092), FRAC_CONST(0.242980197072029)},
                                         {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},   {FRAC_CONST(0.941544055938721), FRAC_CONST(0.336889863014221)},
                                         {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516)},
                                         {FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251)},   {FRAC_CONST(0.857728600502014), FRAC_CONST(0.514102756977081)},
                                         {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.803207516670227), FRAC_CONST(0.595699310302734)},
                                         {FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733)},   {FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.671558916568756), FRAC_CONST(0.740951180458069)},
                                         {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},   {FRAC_CONST(0.595699310302734), FRAC_CONST(0.803207516670227)},
                                         {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},   {FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659)},
                                         {FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318)},   {FRAC_CONST(0.427555114030838), FRAC_CONST(0.903989315032959)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.336889833211899), FRAC_CONST(0.941544055938721)},
                                         {FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718)},   {FRAC_CONST(0.242980122566223), FRAC_CONST(0.970031261444092)},
                                         {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},   {FRAC_CONST(0.146730497479439), FRAC_CONST(0.989176511764526)},
                                         {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},   {FRAC_CONST(0.049067649990320), FRAC_CONST(0.998795449733734)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.049067739397287), FRAC_CONST(0.998795449733734)},
                                         {FRAC_CONST(-0.098017223179340), FRAC_CONST(0.995184719562531)},  {FRAC_CONST(-0.146730571985245), FRAC_CONST(0.989176511764526)},
                                         {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},  {FRAC_CONST(-0.242980197072029), FRAC_CONST(0.970031261444092)},
                                         {FRAC_CONST(-0.290284723043442), FRAC_CONST(0.956940293312073)},  {FRAC_CONST(-0.336889922618866), FRAC_CONST(0.941544055938721)},
                                         {FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796)},  {FRAC_CONST(-0.427555084228516), FRAC_CONST(0.903989315032959)},
                                         {FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674)},  {FRAC_CONST(-0.514102756977081), FRAC_CONST(0.857728600502014)},
                                         {FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637)},  {FRAC_CONST(-0.595699369907379), FRAC_CONST(0.803207516670227)},
                                         {FRAC_CONST(-0.634393274784088), FRAC_CONST(0.773010492324829)},  {FRAC_CONST(-0.671559035778046), FRAC_CONST(0.740951061248779)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.740951240062714), FRAC_CONST(0.671558856964111)},
                                         {FRAC_CONST(-0.773010492324829), FRAC_CONST(0.634393274784088)},  {FRAC_CONST(-0.803207635879517), FRAC_CONST(0.595699131488800)},
                                         {FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479)},  {FRAC_CONST(-0.857728600502014), FRAC_CONST(0.514102756977081)},
                                         {FRAC_CONST(-0.881921350955963), FRAC_CONST(0.471396625041962)},  {FRAC_CONST(-0.903989315032959), FRAC_CONST(0.427555054426193)},
                                         {FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127)},  {FRAC_CONST(-0.941544115543365), FRAC_CONST(0.336889803409576)},
                                         {FRAC_CONST(-0.956940352916718), FRAC_CONST(0.290284723043442)},  {FRAC_CONST(-0.970031261444092), FRAC_CONST(0.242980077862740)},
                                         {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},  {FRAC_CONST(-0.989176511764526), FRAC_CONST(0.146730333566666)},
                                         {FRAC_CONST(-0.995184719562531), FRAC_CONST(0.098017096519470)},  {FRAC_CONST(-0.998795449733734), FRAC_CONST(0.049067486077547)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.997290432453156), FRAC_CONST(0.073564566671848)},
                                         {FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116)},   {FRAC_CONST(0.975702106952667), FRAC_CONST(0.219101235270500)},
                                         {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},   {FRAC_CONST(0.932992815971375), FRAC_CONST(0.359895050525665)},
                                         {FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516)},   {FRAC_CONST(0.870086967945099), FRAC_CONST(0.492898225784302)},
                                         {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.788346469402313), FRAC_CONST(0.615231573581696)},
                                         {FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401)},   {FRAC_CONST(0.689540505409241), FRAC_CONST(0.724247097969055)},
                                         {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},   {FRAC_CONST(0.575808227062225), FRAC_CONST(0.817584812641144)},
                                         {FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659)},   {FRAC_CONST(0.449611306190491), FRAC_CONST(0.893224298954010)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.313681751489639), FRAC_CONST(0.949528157711029)},
                                         {FRAC_CONST(0.242980241775513), FRAC_CONST(0.970031261444092)},   {FRAC_CONST(0.170961856842041), FRAC_CONST(0.985277652740479)},
                                         {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},   {FRAC_CONST(0.024541255086660), FRAC_CONST(0.999698817729950)},
                                         {FRAC_CONST(-0.049067739397287), FRAC_CONST(0.998795449733734)},  {FRAC_CONST(-0.122410707175732), FRAC_CONST(0.992479503154755)},
                                         {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},  {FRAC_CONST(-0.266712725162506), FRAC_CONST(0.963776051998138)},
                                         {FRAC_CONST(-0.336889803409576), FRAC_CONST(0.941544055938721)},  {FRAC_CONST(-0.405241340398788), FRAC_CONST(0.914209723472595)},
                                         {FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674)},  {FRAC_CONST(-0.534997701644897), FRAC_CONST(0.844853520393372)},
                                         {FRAC_CONST(-0.595699369907379), FRAC_CONST(0.803207516670227)},  {FRAC_CONST(-0.653172850608826), FRAC_CONST(0.757208824157715)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.757208824157715), FRAC_CONST(0.653172850608826)},
                                         {FRAC_CONST(-0.803207516670227), FRAC_CONST(0.595699369907379)},  {FRAC_CONST(-0.844853520393372), FRAC_CONST(0.534997701644897)},
                                         {FRAC_CONST(-0.881921231746674), FRAC_CONST(0.471396833658218)},  {FRAC_CONST(-0.914209783077240), FRAC_CONST(0.405241221189499)},
                                         {FRAC_CONST(-0.941544115543365), FRAC_CONST(0.336889803409576)},  {FRAC_CONST(-0.963776051998138), FRAC_CONST(0.266712725162506)},
                                         {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},  {FRAC_CONST(-0.992479503154755), FRAC_CONST(0.122410699725151)},
                                         {FRAC_CONST(-0.998795449733734), FRAC_CONST(0.049067724496126)},  {FRAC_CONST(-0.999698817729950), FRAC_CONST(-0.024541147053242)},
                                         {FRAC_CONST(-0.995184719562531), FRAC_CONST(-0.098017267882824)}, {FRAC_CONST(-0.985277652740479), FRAC_CONST(-0.170961990952492)},
                                         {FRAC_CONST(-0.970031261444092), FRAC_CONST(-0.242980241775513)}, {FRAC_CONST(-0.949528157711029), FRAC_CONST(-0.313681781291962)},
                                         {FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739)}, {FRAC_CONST(-0.893224298954010), FRAC_CONST(-0.449611306190491)},
                                         {FRAC_CONST(-0.857728660106659), FRAC_CONST(-0.514102697372437)}, {FRAC_CONST(-0.817584872245789), FRAC_CONST(-0.575808107852936)},
                                         {FRAC_CONST(-0.773010551929474), FRAC_CONST(-0.634393215179443)}, {FRAC_CONST(-0.724247038364410), FRAC_CONST(-0.689540624618530)},
                                         {FRAC_CONST(-0.671558916568756), FRAC_CONST(-0.740951180458069)}, {FRAC_CONST(-0.615231573581696), FRAC_CONST(-0.788346469402313)},
                                         {FRAC_CONST(-0.555570006370544), FRAC_CONST(-0.831469774246216)}, {FRAC_CONST(-0.492898195981979), FRAC_CONST(-0.870086967945099)},
                                         {FRAC_CONST(-0.427554935216904), FRAC_CONST(-0.903989374637604)}, {FRAC_CONST(-0.359895110130310), FRAC_CONST(-0.932992756366730)},
                                         {FRAC_CONST(-0.290284544229507), FRAC_CONST(-0.956940352916718)}, {FRAC_CONST(-0.219101369380951), FRAC_CONST(-0.975702106952667)},
                                         {FRAC_CONST(-0.146730408072472), FRAC_CONST(-0.989176511764526)}, {FRAC_CONST(-0.073564760386944), FRAC_CONST(-0.997290432453156)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954)},
                                         {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},   {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},
                                         {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251)},
                                         {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},
                                         {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},   {FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718)},
                                         {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},   {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},
                                         {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},
                                         {FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796)},  {FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479)},
                                         {FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127)},  {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},
                                         {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},
                                         {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},  {FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.881921231746674), FRAC_CONST(0.471396833658218)},
                                         {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},  {FRAC_CONST(-0.995184719562531), FRAC_CONST(-0.098017267882824)},
                                         {FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739)}, {FRAC_CONST(-0.773010551929474), FRAC_CONST(-0.634393215179443)},
                                         {FRAC_CONST(-0.555570006370544), FRAC_CONST(-0.831469774246216)}, {FRAC_CONST(-0.290284544229507), FRAC_CONST(-0.956940352916718)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.000000011924881), FRAC_CONST(-1.000000000000000)}};

#ifdef ALLOW_SMALL_FRAMELENGTH
 const complex_t cfft_tab_480[] = {{FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.999914348125458), FRAC_CONST(0.013089596293867)},
                                         {FRAC_CONST(0.999657332897186), FRAC_CONST(0.026176949962974)},   {FRAC_CONST(0.999229013919830), FRAC_CONST(0.039259817451239)},
                                         {FRAC_CONST(0.998629510402679), FRAC_CONST(0.052335958927870)},   {FRAC_CONST(0.997858941555023), FRAC_CONST(0.065403133630753)},
                                         {FRAC_CONST(0.996917307376862), FRAC_CONST(0.078459098935127)},   {FRAC_CONST(0.995804905891418), FRAC_CONST(0.091501623392105)},
                                         {FRAC_CONST(0.994521915912628), FRAC_CONST(0.104528464376926)},   {FRAC_CONST(0.993068456649780), FRAC_CONST(0.117537401616573)},
                                         {FRAC_CONST(0.991444885730743), FRAC_CONST(0.130526199936867)},   {FRAC_CONST(0.989651381969452), FRAC_CONST(0.143492624163628)},
                                         {FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580)},   {FRAC_CONST(0.985556066036224), FRAC_CONST(0.169349506497383)},
                                         {FRAC_CONST(0.983254909515381), FRAC_CONST(0.182235524058342)},   {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},
                                         {FRAC_CONST(0.978147625923157), FRAC_CONST(0.207911700010300)},   {FRAC_CONST(0.975342333316803), FRAC_CONST(0.220697447657585)},
                                         {FRAC_CONST(0.972369909286499), FRAC_CONST(0.233445376157761)},   {FRAC_CONST(0.969230890274048), FRAC_CONST(0.246153295040131)},
                                         {FRAC_CONST(0.965925812721252), FRAC_CONST(0.258819043636322)},   {FRAC_CONST(0.962455213069916), FRAC_CONST(0.271440446376801)},
                                         {FRAC_CONST(0.958819746971130), FRAC_CONST(0.284015357494354)},   {FRAC_CONST(0.955019950866699), FRAC_CONST(0.296541601419449)},
                                         {FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550)},   {FRAC_CONST(0.946930110454559), FRAC_CONST(0.321439445018768)},
                                         {FRAC_CONST(0.942641496658325), FRAC_CONST(0.333806872367859)},   {FRAC_CONST(0.938191354274750), FRAC_CONST(0.346117079257965)},
                                         {FRAC_CONST(0.933580398559570), FRAC_CONST(0.358367949724197)},   {FRAC_CONST(0.928809583187103), FRAC_CONST(0.370557427406311)},
                                         {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.918791174888611), FRAC_CONST(0.394743889570236)},
                                         {FRAC_CONST(0.913545429706573), FRAC_CONST(0.406736642122269)},   {FRAC_CONST(0.908143162727356), FRAC_CONST(0.418659746646881)},
                                         {FRAC_CONST(0.902585268020630), FRAC_CONST(0.430511116981506)},   {FRAC_CONST(0.896872758865356), FRAC_CONST(0.442288726568222)},
                                         {FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783)},   {FRAC_CONST(0.884987652301788), FRAC_CONST(0.465614527463913)},
                                         {FRAC_CONST(0.878817081451416), FRAC_CONST(0.477158784866333)},   {FRAC_CONST(0.872496008872986), FRAC_CONST(0.488621264696121)},
                                         {FRAC_CONST(0.866025388240814), FRAC_CONST(0.500000000000000)},   {FRAC_CONST(0.859406411647797), FRAC_CONST(0.511293113231659)},
                                         {FRAC_CONST(0.852640151977539), FRAC_CONST(0.522498548030853)},   {FRAC_CONST(0.845727801322937), FRAC_CONST(0.533614516258240)},
                                         {FRAC_CONST(0.838670551776886), FRAC_CONST(0.544639050960541)},   {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},
                                         {FRAC_CONST(0.824126183986664), FRAC_CONST(0.566406250000000)},   {FRAC_CONST(0.816641509532928), FRAC_CONST(0.577145218849182)},
                                         {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.801253795623779), FRAC_CONST(0.598324596881866)},
                                         {FRAC_CONST(0.793353319168091), FRAC_CONST(0.608761429786682)},   {FRAC_CONST(0.785316884517670), FRAC_CONST(0.619093954563141)},
                                         {FRAC_CONST(0.777145922183990), FRAC_CONST(0.629320383071899)},   {FRAC_CONST(0.768841803073883), FRAC_CONST(0.639438986778259)},
                                         {FRAC_CONST(0.760405957698822), FRAC_CONST(0.649448096752167)},   {FRAC_CONST(0.751839756965637), FRAC_CONST(0.659345865249634)},
                                         {FRAC_CONST(0.743144810199738), FRAC_CONST(0.669130623340607)},   {FRAC_CONST(0.734322488307953), FRAC_CONST(0.678800761699677)},
                                         {FRAC_CONST(0.725374400615692), FRAC_CONST(0.688354551792145)},   {FRAC_CONST(0.716301918029785), FRAC_CONST(0.697790503501892)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.697790443897247), FRAC_CONST(0.716301977634430)},
                                         {FRAC_CONST(0.688354551792145), FRAC_CONST(0.725374400615692)},   {FRAC_CONST(0.678800702095032), FRAC_CONST(0.734322547912598)},
                                         {FRAC_CONST(0.669130563735962), FRAC_CONST(0.743144869804382)},   {FRAC_CONST(0.659345805644989), FRAC_CONST(0.751839816570282)},
                                         {FRAC_CONST(0.649448037147522), FRAC_CONST(0.760405957698822)},   {FRAC_CONST(0.639438986778259), FRAC_CONST(0.768841862678528)},
                                         {FRAC_CONST(0.629320383071899), FRAC_CONST(0.777145981788635)},   {FRAC_CONST(0.619093954563141), FRAC_CONST(0.785316944122314)},
                                         {FRAC_CONST(0.608761370182037), FRAC_CONST(0.793353378772736)},   {FRAC_CONST(0.598324596881866), FRAC_CONST(0.801253855228424)},
                                         {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},   {FRAC_CONST(0.577145159244537), FRAC_CONST(0.816641569137573)},
                                         {FRAC_CONST(0.566406250000000), FRAC_CONST(0.824126183986664)},   {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},
                                         {FRAC_CONST(0.544638991355896), FRAC_CONST(0.838670611381531)},   {FRAC_CONST(0.533614516258240), FRAC_CONST(0.845727801322937)},
                                         {FRAC_CONST(0.522498488426209), FRAC_CONST(0.852640211582184)},   {FRAC_CONST(0.511293113231659), FRAC_CONST(0.859406411647797)},
                                         {FRAC_CONST(0.499999970197678), FRAC_CONST(0.866025447845459)},   {FRAC_CONST(0.488621175289154), FRAC_CONST(0.872496068477631)},
                                         {FRAC_CONST(0.477158755064011), FRAC_CONST(0.878817141056061)},   {FRAC_CONST(0.465614467859268), FRAC_CONST(0.884987652301788)},
                                         {FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207)},   {FRAC_CONST(0.442288666963577), FRAC_CONST(0.896872758865356)},
                                         {FRAC_CONST(0.430511027574539), FRAC_CONST(0.902585327625275)},   {FRAC_CONST(0.418659746646881), FRAC_CONST(0.908143162727356)},
                                         {FRAC_CONST(0.406736612319946), FRAC_CONST(0.913545489311218)},   {FRAC_CONST(0.394743800163269), FRAC_CONST(0.918791234493256)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.370557397603989), FRAC_CONST(0.928809583187103)},
                                         {FRAC_CONST(0.358367860317230), FRAC_CONST(0.933580458164215)},   {FRAC_CONST(0.346117049455643), FRAC_CONST(0.938191354274750)},
                                         {FRAC_CONST(0.333806812763214), FRAC_CONST(0.942641496658325)},   {FRAC_CONST(0.321439474821091), FRAC_CONST(0.946930110454559)},
                                         {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},   {FRAC_CONST(0.296541512012482), FRAC_CONST(0.955019950866699)},
                                         {FRAC_CONST(0.284015327692032), FRAC_CONST(0.958819746971130)},   {FRAC_CONST(0.271440386772156), FRAC_CONST(0.962455272674561)},
                                         {FRAC_CONST(0.258819073438644), FRAC_CONST(0.965925812721252)},   {FRAC_CONST(0.246153265237808), FRAC_CONST(0.969230890274048)},
                                         {FRAC_CONST(0.233445301651955), FRAC_CONST(0.972369909286499)},   {FRAC_CONST(0.220697447657585), FRAC_CONST(0.975342333316803)},
                                         {FRAC_CONST(0.207911655306816), FRAC_CONST(0.978147625923157)},   {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},
                                         {FRAC_CONST(0.182235524058342), FRAC_CONST(0.983254909515381)},   {FRAC_CONST(0.169349446892738), FRAC_CONST(0.985556066036224)},
                                         {FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419)},   {FRAC_CONST(0.143492594361305), FRAC_CONST(0.989651381969452)},
                                         {FRAC_CONST(0.130526125431061), FRAC_CONST(0.991444885730743)},   {FRAC_CONST(0.117537401616573), FRAC_CONST(0.993068456649780)},
                                         {FRAC_CONST(0.104528419673443), FRAC_CONST(0.994521915912628)},   {FRAC_CONST(0.091501533985138), FRAC_CONST(0.995804905891418)},
                                         {FRAC_CONST(0.078459084033966), FRAC_CONST(0.996917307376862)},   {FRAC_CONST(0.065403074026108), FRAC_CONST(0.997858941555023)},
                                         {FRAC_CONST(0.052335973829031), FRAC_CONST(0.998629510402679)},   {FRAC_CONST(0.039259787648916), FRAC_CONST(0.999229013919830)},
                                         {FRAC_CONST(0.026176875457168), FRAC_CONST(0.999657332897186)},   {FRAC_CONST(0.013089597225189), FRAC_CONST(0.999914348125458)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.013089684769511), FRAC_CONST(0.999914348125458)},
                                         {FRAC_CONST(-0.026176963001490), FRAC_CONST(0.999657332897186)},  {FRAC_CONST(-0.039259877055883), FRAC_CONST(0.999229013919830)},
                                         {FRAC_CONST(-0.052336059510708), FRAC_CONST(0.998629510402679)},  {FRAC_CONST(-0.065403163433075), FRAC_CONST(0.997858941555023)},
                                         {FRAC_CONST(-0.078459173440933), FRAC_CONST(0.996917307376862)},  {FRAC_CONST(-0.091501623392105), FRAC_CONST(0.995804905891418)},
                                         {FRAC_CONST(-0.104528509080410), FRAC_CONST(0.994521915912628)},  {FRAC_CONST(-0.117537491023541), FRAC_CONST(0.993068456649780)},
                                         {FRAC_CONST(-0.130526214838028), FRAC_CONST(0.991444885730743)},  {FRAC_CONST(-0.143492683768272), FRAC_CONST(0.989651381969452)},
                                         {FRAC_CONST(-0.156434446573257), FRAC_CONST(0.987688362598419)},  {FRAC_CONST(-0.169349536299706), FRAC_CONST(0.985556066036224)},
                                         {FRAC_CONST(-0.182235598564148), FRAC_CONST(0.983254909515381)},  {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},
                                         {FRAC_CONST(-0.207911744713783), FRAC_CONST(0.978147566318512)},  {FRAC_CONST(-0.220697522163391), FRAC_CONST(0.975342273712158)},
                                         {FRAC_CONST(-0.233445391058922), FRAC_CONST(0.972369909286499)},  {FRAC_CONST(-0.246153354644775), FRAC_CONST(0.969230890274048)},
                                         {FRAC_CONST(-0.258819162845612), FRAC_CONST(0.965925812721252)},  {FRAC_CONST(-0.271440476179123), FRAC_CONST(0.962455213069916)},
                                         {FRAC_CONST(-0.284015417098999), FRAC_CONST(0.958819687366486)},  {FRAC_CONST(-0.296541571617126), FRAC_CONST(0.955019950866699)},
                                         {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.321439564228058), FRAC_CONST(0.946930110454559)},
                                         {FRAC_CONST(-0.333806872367859), FRAC_CONST(0.942641496658325)},  {FRAC_CONST(-0.346117109060287), FRAC_CONST(0.938191294670105)},
                                         {FRAC_CONST(-0.358367949724197), FRAC_CONST(0.933580458164215)},  {FRAC_CONST(-0.370557487010956), FRAC_CONST(0.928809523582459)},
                                         {FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796)},  {FRAC_CONST(-0.394743859767914), FRAC_CONST(0.918791234493256)},
                                         {FRAC_CONST(-0.406736701726913), FRAC_CONST(0.913545429706573)},  {FRAC_CONST(-0.418659836053848), FRAC_CONST(0.908143103122711)},
                                         {FRAC_CONST(-0.430511116981506), FRAC_CONST(0.902585268020630)},  {FRAC_CONST(-0.442288637161255), FRAC_CONST(0.896872758865356)},
                                         {FRAC_CONST(-0.453990608453751), FRAC_CONST(0.891006469726563)},  {FRAC_CONST(-0.465614557266235), FRAC_CONST(0.884987592697144)},
                                         {FRAC_CONST(-0.477158725261688), FRAC_CONST(0.878817141056061)},  {FRAC_CONST(-0.488621354103088), FRAC_CONST(0.872495949268341)},
                                         {FRAC_CONST(-0.500000059604645), FRAC_CONST(0.866025388240814)},  {FRAC_CONST(-0.511293053627014), FRAC_CONST(0.859406411647797)},
                                         {FRAC_CONST(-0.522498667240143), FRAC_CONST(0.852640092372894)},  {FRAC_CONST(-0.533614575862885), FRAC_CONST(0.845727801322937)},
                                         {FRAC_CONST(-0.544639050960541), FRAC_CONST(0.838670551776886)},  {FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637)},
                                         {FRAC_CONST(-0.566406309604645), FRAC_CONST(0.824126124382019)},  {FRAC_CONST(-0.577145218849182), FRAC_CONST(0.816641569137573)},
                                         {FRAC_CONST(-0.587785184383392), FRAC_CONST(0.809017002582550)},  {FRAC_CONST(-0.598324656486511), FRAC_CONST(0.801253736019135)},
                                         {FRAC_CONST(-0.608761429786682), FRAC_CONST(0.793353319168091)},  {FRAC_CONST(-0.619093894958496), FRAC_CONST(0.785316944122314)},
                                         {FRAC_CONST(-0.629320502281189), FRAC_CONST(0.777145862579346)},  {FRAC_CONST(-0.639439046382904), FRAC_CONST(0.768841803073883)},
                                         {FRAC_CONST(-0.649448037147522), FRAC_CONST(0.760405957698822)},  {FRAC_CONST(-0.659345924854279), FRAC_CONST(0.751839697360992)},
                                         {FRAC_CONST(-0.669130682945251), FRAC_CONST(0.743144810199738)},  {FRAC_CONST(-0.678800761699677), FRAC_CONST(0.734322488307953)},
                                         {FRAC_CONST(-0.688354671001434), FRAC_CONST(0.725374281406403)},  {FRAC_CONST(-0.697790503501892), FRAC_CONST(0.716301858425140)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.716302037239075), FRAC_CONST(0.697790324687958)},
                                         {FRAC_CONST(-0.725374460220337), FRAC_CONST(0.688354492187500)},  {FRAC_CONST(-0.734322547912598), FRAC_CONST(0.678800702095032)},
                                         {FRAC_CONST(-0.743144929409027), FRAC_CONST(0.669130444526672)},  {FRAC_CONST(-0.751839876174927), FRAC_CONST(0.659345746040344)},
                                         {FRAC_CONST(-0.760406017303467), FRAC_CONST(0.649448037147522)},  {FRAC_CONST(-0.768841803073883), FRAC_CONST(0.639439046382904)},
                                         {FRAC_CONST(-0.777146041393280), FRAC_CONST(0.629320263862610)},  {FRAC_CONST(-0.785316944122314), FRAC_CONST(0.619093894958496)},
                                         {FRAC_CONST(-0.793353319168091), FRAC_CONST(0.608761429786682)},  {FRAC_CONST(-0.801253914833069), FRAC_CONST(0.598324477672577)},
                                         {FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392)},  {FRAC_CONST(-0.816641569137573), FRAC_CONST(0.577145218849182)},
                                         {FRAC_CONST(-0.824126303195953), FRAC_CONST(0.566406130790710)},  {FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479)},
                                         {FRAC_CONST(-0.838670551776886), FRAC_CONST(0.544639050960541)},  {FRAC_CONST(-0.845727920532227), FRAC_CONST(0.533614337444305)},
                                         {FRAC_CONST(-0.852640211582184), FRAC_CONST(0.522498488426209)},  {FRAC_CONST(-0.859406411647797), FRAC_CONST(0.511293053627014)},
                                         {FRAC_CONST(-0.866025388240814), FRAC_CONST(0.500000059604645)},  {FRAC_CONST(-0.872496068477631), FRAC_CONST(0.488621145486832)},
                                         {FRAC_CONST(-0.878817141056061), FRAC_CONST(0.477158725261688)},  {FRAC_CONST(-0.884987652301788), FRAC_CONST(0.465614557266235)},
                                         {FRAC_CONST(-0.891006588935852), FRAC_CONST(0.453990370035172)},  {FRAC_CONST(-0.896872758865356), FRAC_CONST(0.442288637161255)},
                                         {FRAC_CONST(-0.902585268020630), FRAC_CONST(0.430511116981506)},  {FRAC_CONST(-0.908143222332001), FRAC_CONST(0.418659597635269)},
                                         {FRAC_CONST(-0.913545489311218), FRAC_CONST(0.406736582517624)},  {FRAC_CONST(-0.918791234493256), FRAC_CONST(0.394743859767914)},
                                         {FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127)},  {FRAC_CONST(-0.928809583187103), FRAC_CONST(0.370557337999344)},
                                         {FRAC_CONST(-0.933580458164215), FRAC_CONST(0.358367919921875)},  {FRAC_CONST(-0.938191413879395), FRAC_CONST(0.346116900444031)},
                                         {FRAC_CONST(-0.942641556262970), FRAC_CONST(0.333806753158569)},  {FRAC_CONST(-0.946930170059204), FRAC_CONST(0.321439445018768)},
                                         {FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293)},  {FRAC_CONST(-0.955020010471344), FRAC_CONST(0.296541452407837)},
                                         {FRAC_CONST(-0.958819746971130), FRAC_CONST(0.284015297889709)},  {FRAC_CONST(-0.962455213069916), FRAC_CONST(0.271440476179123)},
                                         {FRAC_CONST(-0.965925872325897), FRAC_CONST(0.258818924427032)},  {FRAC_CONST(-0.969230949878693), FRAC_CONST(0.246153235435486)},
                                         {FRAC_CONST(-0.972369909286499), FRAC_CONST(0.233445376157761)},  {FRAC_CONST(-0.975342333316803), FRAC_CONST(0.220697283744812)},
                                         {FRAC_CONST(-0.978147625923157), FRAC_CONST(0.207911610603333)},  {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},
                                         {FRAC_CONST(-0.983254909515381), FRAC_CONST(0.182235360145569)},  {FRAC_CONST(-0.985556066036224), FRAC_CONST(0.169349402189255)},
                                         {FRAC_CONST(-0.987688362598419), FRAC_CONST(0.156434446573257)},  {FRAC_CONST(-0.989651441574097), FRAC_CONST(0.143492430448532)},
                                         {FRAC_CONST(-0.991444885730743), FRAC_CONST(0.130526080727577)},  {FRAC_CONST(-0.993068456649780), FRAC_CONST(0.117537356913090)},
                                         {FRAC_CONST(-0.994521915912628), FRAC_CONST(0.104528494179249)},  {FRAC_CONST(-0.995804965496063), FRAC_CONST(0.091501489281654)},
                                         {FRAC_CONST(-0.996917366981506), FRAC_CONST(0.078459039330482)},  {FRAC_CONST(-0.997858941555023), FRAC_CONST(0.065403148531914)},
                                         {FRAC_CONST(-0.998629570007324), FRAC_CONST(0.052335809916258)},  {FRAC_CONST(-0.999229013919830), FRAC_CONST(0.039259742945433)},
                                         {FRAC_CONST(-0.999657332897186), FRAC_CONST(0.026176951825619)},  {FRAC_CONST(-0.999914348125458), FRAC_CONST(0.013089434243739)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.999657332897186), FRAC_CONST(0.026176949962974)},
                                         {FRAC_CONST(0.998629510402679), FRAC_CONST(0.052335958927870)},   {FRAC_CONST(0.996917307376862), FRAC_CONST(0.078459098935127)},
                                         {FRAC_CONST(0.994521915912628), FRAC_CONST(0.104528464376926)},   {FRAC_CONST(0.991444885730743), FRAC_CONST(0.130526199936867)},
                                         {FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580)},   {FRAC_CONST(0.983254909515381), FRAC_CONST(0.182235524058342)},
                                         {FRAC_CONST(0.978147625923157), FRAC_CONST(0.207911700010300)},   {FRAC_CONST(0.972369909286499), FRAC_CONST(0.233445376157761)},
                                         {FRAC_CONST(0.965925812721252), FRAC_CONST(0.258819043636322)},   {FRAC_CONST(0.958819746971130), FRAC_CONST(0.284015357494354)},
                                         {FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550)},   {FRAC_CONST(0.942641496658325), FRAC_CONST(0.333806872367859)},
                                         {FRAC_CONST(0.933580398559570), FRAC_CONST(0.358367949724197)},   {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},
                                         {FRAC_CONST(0.913545429706573), FRAC_CONST(0.406736642122269)},   {FRAC_CONST(0.902585268020630), FRAC_CONST(0.430511116981506)},
                                         {FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783)},   {FRAC_CONST(0.878817081451416), FRAC_CONST(0.477158784866333)},
                                         {FRAC_CONST(0.866025388240814), FRAC_CONST(0.500000000000000)},   {FRAC_CONST(0.852640151977539), FRAC_CONST(0.522498548030853)},
                                         {FRAC_CONST(0.838670551776886), FRAC_CONST(0.544639050960541)},   {FRAC_CONST(0.824126183986664), FRAC_CONST(0.566406250000000)},
                                         {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.793353319168091), FRAC_CONST(0.608761429786682)},
                                         {FRAC_CONST(0.777145922183990), FRAC_CONST(0.629320383071899)},   {FRAC_CONST(0.760405957698822), FRAC_CONST(0.649448096752167)},
                                         {FRAC_CONST(0.743144810199738), FRAC_CONST(0.669130623340607)},   {FRAC_CONST(0.725374400615692), FRAC_CONST(0.688354551792145)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.688354551792145), FRAC_CONST(0.725374400615692)},
                                         {FRAC_CONST(0.669130563735962), FRAC_CONST(0.743144869804382)},   {FRAC_CONST(0.649448037147522), FRAC_CONST(0.760405957698822)},
                                         {FRAC_CONST(0.629320383071899), FRAC_CONST(0.777145981788635)},   {FRAC_CONST(0.608761370182037), FRAC_CONST(0.793353378772736)},
                                         {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},   {FRAC_CONST(0.566406250000000), FRAC_CONST(0.824126183986664)},
                                         {FRAC_CONST(0.544638991355896), FRAC_CONST(0.838670611381531)},   {FRAC_CONST(0.522498488426209), FRAC_CONST(0.852640211582184)},
                                         {FRAC_CONST(0.499999970197678), FRAC_CONST(0.866025447845459)},   {FRAC_CONST(0.477158755064011), FRAC_CONST(0.878817141056061)},
                                         {FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207)},   {FRAC_CONST(0.430511027574539), FRAC_CONST(0.902585327625275)},
                                         {FRAC_CONST(0.406736612319946), FRAC_CONST(0.913545489311218)},   {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},
                                         {FRAC_CONST(0.358367860317230), FRAC_CONST(0.933580458164215)},   {FRAC_CONST(0.333806812763214), FRAC_CONST(0.942641496658325)},
                                         {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},   {FRAC_CONST(0.284015327692032), FRAC_CONST(0.958819746971130)},
                                         {FRAC_CONST(0.258819073438644), FRAC_CONST(0.965925812721252)},   {FRAC_CONST(0.233445301651955), FRAC_CONST(0.972369909286499)},
                                         {FRAC_CONST(0.207911655306816), FRAC_CONST(0.978147625923157)},   {FRAC_CONST(0.182235524058342), FRAC_CONST(0.983254909515381)},
                                         {FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419)},   {FRAC_CONST(0.130526125431061), FRAC_CONST(0.991444885730743)},
                                         {FRAC_CONST(0.104528419673443), FRAC_CONST(0.994521915912628)},   {FRAC_CONST(0.078459084033966), FRAC_CONST(0.996917307376862)},
                                         {FRAC_CONST(0.052335973829031), FRAC_CONST(0.998629510402679)},   {FRAC_CONST(0.026176875457168), FRAC_CONST(0.999657332897186)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.026176963001490), FRAC_CONST(0.999657332897186)},
                                         {FRAC_CONST(-0.052336059510708), FRAC_CONST(0.998629510402679)},  {FRAC_CONST(-0.078459173440933), FRAC_CONST(0.996917307376862)},
                                         {FRAC_CONST(-0.104528509080410), FRAC_CONST(0.994521915912628)},  {FRAC_CONST(-0.130526214838028), FRAC_CONST(0.991444885730743)},
                                         {FRAC_CONST(-0.156434446573257), FRAC_CONST(0.987688362598419)},  {FRAC_CONST(-0.182235598564148), FRAC_CONST(0.983254909515381)},
                                         {FRAC_CONST(-0.207911744713783), FRAC_CONST(0.978147566318512)},  {FRAC_CONST(-0.233445391058922), FRAC_CONST(0.972369909286499)},
                                         {FRAC_CONST(-0.258819162845612), FRAC_CONST(0.965925812721252)},  {FRAC_CONST(-0.284015417098999), FRAC_CONST(0.958819687366486)},
                                         {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.333806872367859), FRAC_CONST(0.942641496658325)},
                                         {FRAC_CONST(-0.358367949724197), FRAC_CONST(0.933580458164215)},  {FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796)},
                                         {FRAC_CONST(-0.406736701726913), FRAC_CONST(0.913545429706573)},  {FRAC_CONST(-0.430511116981506), FRAC_CONST(0.902585268020630)},
                                         {FRAC_CONST(-0.453990608453751), FRAC_CONST(0.891006469726563)},  {FRAC_CONST(-0.477158725261688), FRAC_CONST(0.878817141056061)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.998629510402679), FRAC_CONST(0.052335958927870)},
                                         {FRAC_CONST(0.994521915912628), FRAC_CONST(0.104528464376926)},   {FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580)},
                                         {FRAC_CONST(0.978147625923157), FRAC_CONST(0.207911700010300)},   {FRAC_CONST(0.965925812721252), FRAC_CONST(0.258819043636322)},
                                         {FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550)},   {FRAC_CONST(0.933580398559570), FRAC_CONST(0.358367949724197)},
                                         {FRAC_CONST(0.913545429706573), FRAC_CONST(0.406736642122269)},   {FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783)},
                                         {FRAC_CONST(0.866025388240814), FRAC_CONST(0.500000000000000)},   {FRAC_CONST(0.838670551776886), FRAC_CONST(0.544639050960541)},
                                         {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.777145922183990), FRAC_CONST(0.629320383071899)},
                                         {FRAC_CONST(0.743144810199738), FRAC_CONST(0.669130623340607)},   {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},
                                         {FRAC_CONST(0.669130563735962), FRAC_CONST(0.743144869804382)},   {FRAC_CONST(0.629320383071899), FRAC_CONST(0.777145981788635)},
                                         {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},   {FRAC_CONST(0.544638991355896), FRAC_CONST(0.838670611381531)},
                                         {FRAC_CONST(0.499999970197678), FRAC_CONST(0.866025447845459)},   {FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207)},
                                         {FRAC_CONST(0.406736612319946), FRAC_CONST(0.913545489311218)},   {FRAC_CONST(0.358367860317230), FRAC_CONST(0.933580458164215)},
                                         {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},   {FRAC_CONST(0.258819073438644), FRAC_CONST(0.965925812721252)},
                                         {FRAC_CONST(0.207911655306816), FRAC_CONST(0.978147625923157)},   {FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419)},
                                         {FRAC_CONST(0.104528419673443), FRAC_CONST(0.994521915912628)},   {FRAC_CONST(0.052335973829031), FRAC_CONST(0.998629510402679)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.052336059510708), FRAC_CONST(0.998629510402679)},
                                         {FRAC_CONST(-0.104528509080410), FRAC_CONST(0.994521915912628)},  {FRAC_CONST(-0.156434446573257), FRAC_CONST(0.987688362598419)},
                                         {FRAC_CONST(-0.207911744713783), FRAC_CONST(0.978147566318512)},  {FRAC_CONST(-0.258819162845612), FRAC_CONST(0.965925812721252)},
                                         {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.358367949724197), FRAC_CONST(0.933580458164215)},
                                         {FRAC_CONST(-0.406736701726913), FRAC_CONST(0.913545429706573)},  {FRAC_CONST(-0.453990608453751), FRAC_CONST(0.891006469726563)},
                                         {FRAC_CONST(-0.500000059604645), FRAC_CONST(0.866025388240814)},  {FRAC_CONST(-0.544639050960541), FRAC_CONST(0.838670551776886)},
                                         {FRAC_CONST(-0.587785184383392), FRAC_CONST(0.809017002582550)},  {FRAC_CONST(-0.629320502281189), FRAC_CONST(0.777145862579346)},
                                         {FRAC_CONST(-0.669130682945251), FRAC_CONST(0.743144810199738)},  {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},
                                         {FRAC_CONST(-0.743144929409027), FRAC_CONST(0.669130444526672)},  {FRAC_CONST(-0.777146041393280), FRAC_CONST(0.629320263862610)},
                                         {FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392)},  {FRAC_CONST(-0.838670551776886), FRAC_CONST(0.544639050960541)},
                                         {FRAC_CONST(-0.866025388240814), FRAC_CONST(0.500000059604645)},  {FRAC_CONST(-0.891006588935852), FRAC_CONST(0.453990370035172)},
                                         {FRAC_CONST(-0.913545489311218), FRAC_CONST(0.406736582517624)},  {FRAC_CONST(-0.933580458164215), FRAC_CONST(0.358367919921875)},
                                         {FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293)},  {FRAC_CONST(-0.965925872325897), FRAC_CONST(0.258818924427032)},
                                         {FRAC_CONST(-0.978147625923157), FRAC_CONST(0.207911610603333)},  {FRAC_CONST(-0.987688362598419), FRAC_CONST(0.156434446573257)},
                                         {FRAC_CONST(-0.994521915912628), FRAC_CONST(0.104528494179249)},  {FRAC_CONST(-0.998629570007324), FRAC_CONST(0.052335809916258)},
                                         {FRAC_CONST(-1.000000000000000), FRAC_CONST(-0.000000087422777)}, {FRAC_CONST(-0.998629510402679), FRAC_CONST(-0.052335985004902)},
                                         {FRAC_CONST(-0.994521856307983), FRAC_CONST(-0.104528672993183)}, {FRAC_CONST(-0.987688302993774), FRAC_CONST(-0.156434610486031)},
                                         {FRAC_CONST(-0.978147566318512), FRAC_CONST(-0.207911789417267)}, {FRAC_CONST(-0.965925812721252), FRAC_CONST(-0.258819073438644)},
                                         {FRAC_CONST(-0.951056540012360), FRAC_CONST(-0.309016972780228)}, {FRAC_CONST(-0.933580398559570), FRAC_CONST(-0.358368098735809)},
                                         {FRAC_CONST(-0.913545429706573), FRAC_CONST(-0.406736731529236)}, {FRAC_CONST(-0.891006529331207), FRAC_CONST(-0.453990548849106)},
                                         {FRAC_CONST(-0.866025269031525), FRAC_CONST(-0.500000178813934)}, {FRAC_CONST(-0.838670492172241), FRAC_CONST(-0.544639170169830)},
                                         {FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327)}, {FRAC_CONST(-0.777145922183990), FRAC_CONST(-0.629320442676544)},
                                         {FRAC_CONST(-0.743144810199738), FRAC_CONST(-0.669130623340607)}, {FRAC_CONST(-0.707106649875641), FRAC_CONST(-0.707106888294220)},
                                         {FRAC_CONST(-0.669130504131317), FRAC_CONST(-0.743144869804382)}, {FRAC_CONST(-0.629320323467255), FRAC_CONST(-0.777145981788635)},
                                         {FRAC_CONST(-0.587785065174103), FRAC_CONST(-0.809017121791840)}, {FRAC_CONST(-0.544639110565186), FRAC_CONST(-0.838670551776886)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.996917307376862), FRAC_CONST(0.078459098935127)},
                                         {FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580)},   {FRAC_CONST(0.972369909286499), FRAC_CONST(0.233445376157761)},
                                         {FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550)},   {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},
                                         {FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783)},   {FRAC_CONST(0.852640151977539), FRAC_CONST(0.522498548030853)},
                                         {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.760405957698822), FRAC_CONST(0.649448096752167)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.649448037147522), FRAC_CONST(0.760405957698822)},
                                         {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},   {FRAC_CONST(0.522498488426209), FRAC_CONST(0.852640211582184)},
                                         {FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207)},   {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},
                                         {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},   {FRAC_CONST(0.233445301651955), FRAC_CONST(0.972369909286499)},
                                         {FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419)},   {FRAC_CONST(0.078459084033966), FRAC_CONST(0.996917307376862)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580)},
                                         {FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550)},   {FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783)},
                                         {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},
                                         {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},   {FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207)},
                                         {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},   {FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.156434446573257), FRAC_CONST(0.987688362598419)},
                                         {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.453990608453751), FRAC_CONST(0.891006469726563)},
                                         {FRAC_CONST(-0.587785184383392), FRAC_CONST(0.809017002582550)},  {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},
                                         {FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392)},  {FRAC_CONST(-0.891006588935852), FRAC_CONST(0.453990370035172)},
                                         {FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293)},  {FRAC_CONST(-0.987688362598419), FRAC_CONST(0.156434446573257)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.972369909286499), FRAC_CONST(0.233445376157761)},
                                         {FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783)},   {FRAC_CONST(0.760405957698822), FRAC_CONST(0.649448096752167)},
                                         {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},   {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},
                                         {FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419)},   {FRAC_CONST(-0.078459173440933), FRAC_CONST(0.996917307376862)},
                                         {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.522498667240143), FRAC_CONST(0.852640092372894)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.852640211582184), FRAC_CONST(0.522498488426209)},
                                         {FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293)},  {FRAC_CONST(-0.996917366981506), FRAC_CONST(0.078459039330482)},
                                         {FRAC_CONST(-0.987688302993774), FRAC_CONST(-0.156434610486031)}, {FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739)},
                                         {FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327)}, {FRAC_CONST(-0.649447917938232), FRAC_CONST(-0.760406076908112)},
                                         {FRAC_CONST(-0.453990221023560), FRAC_CONST(-0.891006648540497)}, {FRAC_CONST(-0.233445450663567), FRAC_CONST(-0.972369909286499)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550)},
                                         {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},
                                         {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},   {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},
                                         {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},
                                         {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},
                                         {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293)},
                                         {FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327)}, {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.309017121791840), FRAC_CONST(-0.951056480407715)}};
#endif

 const complex_t cfft_tab_64[] = {{FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954)},
                                        {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},   {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},
                                        {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251)},
                                        {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733)},
                                        {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},
                                        {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},   {FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318)},
                                        {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718)},
                                        {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},   {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},
                                        {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},
                                        {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},
                                        {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},
                                        {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},
                                        {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},
                                        {FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796)},  {FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637)},
                                        {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479)},
                                        {FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127)},  {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},
                                        {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},
                                        {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},
                                        {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},
                                        {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},  {FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674)},
                                        {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.881921231746674), FRAC_CONST(0.471396833658218)},
                                        {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},  {FRAC_CONST(-0.995184719562531), FRAC_CONST(-0.098017267882824)},
                                        {FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739)}, {FRAC_CONST(-0.773010551929474), FRAC_CONST(-0.634393215179443)},
                                        {FRAC_CONST(-0.555570006370544), FRAC_CONST(-0.831469774246216)}, {FRAC_CONST(-0.290284544229507), FRAC_CONST(-0.956940352916718)},
                                        {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},
                                        {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},
                                        {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},
                                        {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},
                                        {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},
                                        {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739)},
                                        {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},
                                        {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.000000011924881), FRAC_CONST(-1.000000000000000)}};

#ifdef ALLOW_SMALL_FRAMELENGTH
 const complex_t cfft_tab_60[] = {{FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.994521915912628), FRAC_CONST(0.104528464376926)},
                                        {FRAC_CONST(0.978147625923157), FRAC_CONST(0.207911700010300)},   {FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550)},
                                        {FRAC_CONST(0.913545429706573), FRAC_CONST(0.406736642122269)},   {FRAC_CONST(0.866025388240814), FRAC_CONST(0.500000000000000)},
                                        {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.743144810199738), FRAC_CONST(0.669130623340607)},
                                        {FRAC_CONST(0.669130563735962), FRAC_CONST(0.743144869804382)},   {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},
                                        {FRAC_CONST(0.499999970197678), FRAC_CONST(0.866025447845459)},   {FRAC_CONST(0.406736612319946), FRAC_CONST(0.913545489311218)},
                                        {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},   {FRAC_CONST(0.207911655306816), FRAC_CONST(0.978147625923157)},
                                        {FRAC_CONST(0.104528419673443), FRAC_CONST(0.994521915912628)},   {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},
                                        {FRAC_CONST(-0.104528509080410), FRAC_CONST(0.994521915912628)},  {FRAC_CONST(-0.207911744713783), FRAC_CONST(0.978147566318512)},
                                        {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.406736701726913), FRAC_CONST(0.913545429706573)},
                                        {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.978147625923157), FRAC_CONST(0.207911700010300)},
                                        {FRAC_CONST(0.913545429706573), FRAC_CONST(0.406736642122269)},   {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},
                                        {FRAC_CONST(0.669130563735962), FRAC_CONST(0.743144869804382)},   {FRAC_CONST(0.499999970197678), FRAC_CONST(0.866025447845459)},
                                        {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},   {FRAC_CONST(0.104528419673443), FRAC_CONST(0.994521915912628)},
                                        {FRAC_CONST(-0.104528509080410), FRAC_CONST(0.994521915912628)},  {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},
                                        {FRAC_CONST(-0.500000059604645), FRAC_CONST(0.866025388240814)},  {FRAC_CONST(-0.669130682945251), FRAC_CONST(0.743144810199738)},
                                        {FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392)},  {FRAC_CONST(-0.913545489311218), FRAC_CONST(0.406736582517624)},
                                        {FRAC_CONST(-0.978147625923157), FRAC_CONST(0.207911610603333)},  {FRAC_CONST(-1.000000000000000), FRAC_CONST(-0.000000087422777)},
                                        {FRAC_CONST(-0.978147566318512), FRAC_CONST(-0.207911789417267)}, {FRAC_CONST(-0.913545429706573), FRAC_CONST(-0.406736731529236)},
                                        {FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327)}, {FRAC_CONST(-0.669130504131317), FRAC_CONST(-0.743144869804382)},
                                        {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550)},
                                        {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},
                                        {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},   {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},
                                        {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},
                                        {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392)},
                                        {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},
                                        {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293)},
                                        {FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327)}, {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},
                                        {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},
                                        {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.309017121791840), FRAC_CONST(-0.951056480407715)}};
#endif

#ifdef LD_DEC

 const complex_t cfft_tab_256[] = {{FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.999698817729950), FRAC_CONST(0.024541229009628)},
                                         {FRAC_CONST(0.998795449733734), FRAC_CONST(0.049067676067352)},   {FRAC_CONST(0.997290432453156), FRAC_CONST(0.073564566671848)},
                                         {FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954)},   {FRAC_CONST(0.992479562759399), FRAC_CONST(0.122410677373409)},
                                         {FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116)},   {FRAC_CONST(0.985277652740479), FRAC_CONST(0.170961901545525)},
                                         {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},   {FRAC_CONST(0.975702106952667), FRAC_CONST(0.219101235270500)},
                                         {FRAC_CONST(0.970031261444092), FRAC_CONST(0.242980197072029)},   {FRAC_CONST(0.963776051998138), FRAC_CONST(0.266712784767151)},
                                         {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},   {FRAC_CONST(0.949528157711029), FRAC_CONST(0.313681751489639)},
                                         {FRAC_CONST(0.941544055938721), FRAC_CONST(0.336889863014221)},   {FRAC_CONST(0.932992815971375), FRAC_CONST(0.359895050525665)},
                                         {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.914209723472595), FRAC_CONST(0.405241340398788)},
                                         {FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516)},   {FRAC_CONST(0.893224298954010), FRAC_CONST(0.449611335992813)},
                                         {FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251)},   {FRAC_CONST(0.870086967945099), FRAC_CONST(0.492898225784302)},
                                         {FRAC_CONST(0.857728600502014), FRAC_CONST(0.514102756977081)},   {FRAC_CONST(0.844853579998016), FRAC_CONST(0.534997642040253)},
                                         {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.817584812641144), FRAC_CONST(0.575808227062225)},
                                         {FRAC_CONST(0.803207516670227), FRAC_CONST(0.595699310302734)},   {FRAC_CONST(0.788346409797668), FRAC_CONST(0.615231633186340)},
                                         {FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733)},   {FRAC_CONST(0.757208824157715), FRAC_CONST(0.653172850608826)},
                                         {FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401)},   {FRAC_CONST(0.724247097969055), FRAC_CONST(0.689540565013886)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.689540505409241), FRAC_CONST(0.724247097969055)},
                                         {FRAC_CONST(0.671558916568756), FRAC_CONST(0.740951180458069)},   {FRAC_CONST(0.653172791004181), FRAC_CONST(0.757208883762360)},
                                         {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},   {FRAC_CONST(0.615231573581696), FRAC_CONST(0.788346409797668)},
                                         {FRAC_CONST(0.595699310302734), FRAC_CONST(0.803207516670227)},   {FRAC_CONST(0.575808167457581), FRAC_CONST(0.817584812641144)},
                                         {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},   {FRAC_CONST(0.534997642040253), FRAC_CONST(0.844853579998016)},
                                         {FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659)},   {FRAC_CONST(0.492898195981979), FRAC_CONST(0.870086967945099)},
                                         {FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318)},   {FRAC_CONST(0.449611306190491), FRAC_CONST(0.893224298954010)},
                                         {FRAC_CONST(0.427555114030838), FRAC_CONST(0.903989315032959)},   {FRAC_CONST(0.405241280794144), FRAC_CONST(0.914209783077240)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.359894961118698), FRAC_CONST(0.932992815971375)},
                                         {FRAC_CONST(0.336889833211899), FRAC_CONST(0.941544055938721)},   {FRAC_CONST(0.313681662082672), FRAC_CONST(0.949528217315674)},
                                         {FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718)},   {FRAC_CONST(0.266712754964828), FRAC_CONST(0.963776051998138)},
                                         {FRAC_CONST(0.242980122566223), FRAC_CONST(0.970031261444092)},   {FRAC_CONST(0.219101220369339), FRAC_CONST(0.975702106952667)},
                                         {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},   {FRAC_CONST(0.170961856842041), FRAC_CONST(0.985277652740479)},
                                         {FRAC_CONST(0.146730497479439), FRAC_CONST(0.989176511764526)},   {FRAC_CONST(0.122410625219345), FRAC_CONST(0.992479562759399)},
                                         {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},   {FRAC_CONST(0.073564492166042), FRAC_CONST(0.997290432453156)},
                                         {FRAC_CONST(0.049067649990320), FRAC_CONST(0.998795449733734)},   {FRAC_CONST(0.024541135877371), FRAC_CONST(0.999698817729950)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.998795449733734), FRAC_CONST(0.049067676067352)},
                                         {FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954)},   {FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116)},
                                         {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},   {FRAC_CONST(0.970031261444092), FRAC_CONST(0.242980197072029)},
                                         {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},   {FRAC_CONST(0.941544055938721), FRAC_CONST(0.336889863014221)},
                                         {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516)},
                                         {FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251)},   {FRAC_CONST(0.857728600502014), FRAC_CONST(0.514102756977081)},
                                         {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.803207516670227), FRAC_CONST(0.595699310302734)},
                                         {FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733)},   {FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.671558916568756), FRAC_CONST(0.740951180458069)},
                                         {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},   {FRAC_CONST(0.595699310302734), FRAC_CONST(0.803207516670227)},
                                         {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},   {FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659)},
                                         {FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318)},   {FRAC_CONST(0.427555114030838), FRAC_CONST(0.903989315032959)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.336889833211899), FRAC_CONST(0.941544055938721)},
                                         {FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718)},   {FRAC_CONST(0.242980122566223), FRAC_CONST(0.970031261444092)},
                                         {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},   {FRAC_CONST(0.146730497479439), FRAC_CONST(0.989176511764526)},
                                         {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},   {FRAC_CONST(0.049067649990320), FRAC_CONST(0.998795449733734)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.049067739397287), FRAC_CONST(0.998795449733734)},
                                         {FRAC_CONST(-0.098017223179340), FRAC_CONST(0.995184719562531)},  {FRAC_CONST(-0.146730571985245), FRAC_CONST(0.989176511764526)},
                                         {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},  {FRAC_CONST(-0.242980197072029), FRAC_CONST(0.970031261444092)},
                                         {FRAC_CONST(-0.290284723043442), FRAC_CONST(0.956940293312073)},  {FRAC_CONST(-0.336889922618866), FRAC_CONST(0.941544055938721)},
                                         {FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796)},  {FRAC_CONST(-0.427555084228516), FRAC_CONST(0.903989315032959)},
                                         {FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674)},  {FRAC_CONST(-0.514102756977081), FRAC_CONST(0.857728600502014)},
                                         {FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637)},  {FRAC_CONST(-0.595699369907379), FRAC_CONST(0.803207516670227)},
                                         {FRAC_CONST(-0.634393274784088), FRAC_CONST(0.773010492324829)},  {FRAC_CONST(-0.671559035778046), FRAC_CONST(0.740951061248779)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.740951240062714), FRAC_CONST(0.671558856964111)},
                                         {FRAC_CONST(-0.773010492324829), FRAC_CONST(0.634393274784088)},  {FRAC_CONST(-0.803207635879517), FRAC_CONST(0.595699131488800)},
                                         {FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479)},  {FRAC_CONST(-0.857728600502014), FRAC_CONST(0.514102756977081)},
                                         {FRAC_CONST(-0.881921350955963), FRAC_CONST(0.471396625041962)},  {FRAC_CONST(-0.903989315032959), FRAC_CONST(0.427555054426193)},
                                         {FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127)},  {FRAC_CONST(-0.941544115543365), FRAC_CONST(0.336889803409576)},
                                         {FRAC_CONST(-0.956940352916718), FRAC_CONST(0.290284723043442)},  {FRAC_CONST(-0.970031261444092), FRAC_CONST(0.242980077862740)},
                                         {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},  {FRAC_CONST(-0.989176511764526), FRAC_CONST(0.146730333566666)},
                                         {FRAC_CONST(-0.995184719562531), FRAC_CONST(0.098017096519470)},  {FRAC_CONST(-0.998795449733734), FRAC_CONST(0.049067486077547)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.997290432453156), FRAC_CONST(0.073564566671848)},
                                         {FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116)},   {FRAC_CONST(0.975702106952667), FRAC_CONST(0.219101235270500)},
                                         {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},   {FRAC_CONST(0.932992815971375), FRAC_CONST(0.359895050525665)},
                                         {FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516)},   {FRAC_CONST(0.870086967945099), FRAC_CONST(0.492898225784302)},
                                         {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.788346469402313), FRAC_CONST(0.615231573581696)},
                                         {FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401)},   {FRAC_CONST(0.689540505409241), FRAC_CONST(0.724247097969055)},
                                         {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},   {FRAC_CONST(0.575808227062225), FRAC_CONST(0.817584812641144)},
                                         {FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659)},   {FRAC_CONST(0.449611306190491), FRAC_CONST(0.893224298954010)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.313681751489639), FRAC_CONST(0.949528157711029)},
                                         {FRAC_CONST(0.242980241775513), FRAC_CONST(0.970031261444092)},   {FRAC_CONST(0.170961856842041), FRAC_CONST(0.985277652740479)},
                                         {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},   {FRAC_CONST(0.024541255086660), FRAC_CONST(0.999698817729950)},
                                         {FRAC_CONST(-0.049067739397287), FRAC_CONST(0.998795449733734)},  {FRAC_CONST(-0.122410707175732), FRAC_CONST(0.992479503154755)},
                                         {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},  {FRAC_CONST(-0.266712725162506), FRAC_CONST(0.963776051998138)},
                                         {FRAC_CONST(-0.336889803409576), FRAC_CONST(0.941544055938721)},  {FRAC_CONST(-0.405241340398788), FRAC_CONST(0.914209723472595)},
                                         {FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674)},  {FRAC_CONST(-0.534997701644897), FRAC_CONST(0.844853520393372)},
                                         {FRAC_CONST(-0.595699369907379), FRAC_CONST(0.803207516670227)},  {FRAC_CONST(-0.653172850608826), FRAC_CONST(0.757208824157715)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.757208824157715), FRAC_CONST(0.653172850608826)},
                                         {FRAC_CONST(-0.803207516670227), FRAC_CONST(0.595699369907379)},  {FRAC_CONST(-0.844853520393372), FRAC_CONST(0.534997701644897)},
                                         {FRAC_CONST(-0.881921231746674), FRAC_CONST(0.471396833658218)},  {FRAC_CONST(-0.914209783077240), FRAC_CONST(0.405241221189499)},
                                         {FRAC_CONST(-0.941544115543365), FRAC_CONST(0.336889803409576)},  {FRAC_CONST(-0.963776051998138), FRAC_CONST(0.266712725162506)},
                                         {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},  {FRAC_CONST(-0.992479503154755), FRAC_CONST(0.122410699725151)},
                                         {FRAC_CONST(-0.998795449733734), FRAC_CONST(0.049067724496126)},  {FRAC_CONST(-0.999698817729950), FRAC_CONST(-0.024541147053242)},
                                         {FRAC_CONST(-0.995184719562531), FRAC_CONST(-0.098017267882824)}, {FRAC_CONST(-0.985277652740479), FRAC_CONST(-0.170961990952492)},
                                         {FRAC_CONST(-0.970031261444092), FRAC_CONST(-0.242980241775513)}, {FRAC_CONST(-0.949528157711029), FRAC_CONST(-0.313681781291962)},
                                         {FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739)}, {FRAC_CONST(-0.893224298954010), FRAC_CONST(-0.449611306190491)},
                                         {FRAC_CONST(-0.857728660106659), FRAC_CONST(-0.514102697372437)}, {FRAC_CONST(-0.817584872245789), FRAC_CONST(-0.575808107852936)},
                                         {FRAC_CONST(-0.773010551929474), FRAC_CONST(-0.634393215179443)}, {FRAC_CONST(-0.724247038364410), FRAC_CONST(-0.689540624618530)},
                                         {FRAC_CONST(-0.671558916568756), FRAC_CONST(-0.740951180458069)}, {FRAC_CONST(-0.615231573581696), FRAC_CONST(-0.788346469402313)},
                                         {FRAC_CONST(-0.555570006370544), FRAC_CONST(-0.831469774246216)}, {FRAC_CONST(-0.492898195981979), FRAC_CONST(-0.870086967945099)},
                                         {FRAC_CONST(-0.427554935216904), FRAC_CONST(-0.903989374637604)}, {FRAC_CONST(-0.359895110130310), FRAC_CONST(-0.932992756366730)},
                                         {FRAC_CONST(-0.290284544229507), FRAC_CONST(-0.956940352916718)}, {FRAC_CONST(-0.219101369380951), FRAC_CONST(-0.975702106952667)},
                                         {FRAC_CONST(-0.146730408072472), FRAC_CONST(-0.989176511764526)}, {FRAC_CONST(-0.073564760386944), FRAC_CONST(-0.997290432453156)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954)},
                                         {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},   {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},
                                         {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251)},
                                         {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},
                                         {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},   {FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718)},
                                         {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},   {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},
                                         {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},
                                         {FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796)},  {FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479)},
                                         {FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127)},  {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},
                                         {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},
                                         {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},  {FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.881921231746674), FRAC_CONST(0.471396833658218)},
                                         {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},  {FRAC_CONST(-0.995184719562531), FRAC_CONST(-0.098017267882824)},
                                         {FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739)}, {FRAC_CONST(-0.773010551929474), FRAC_CONST(-0.634393215179443)},
                                         {FRAC_CONST(-0.555570006370544), FRAC_CONST(-0.831469774246216)}, {FRAC_CONST(-0.290284544229507), FRAC_CONST(-0.956940352916718)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.000000011924881), FRAC_CONST(-1.000000000000000)}};

    #ifdef ALLOW_SMALL_FRAMELENGTH
 const complex_t cfft_tab_240[] = {{FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.999657332897186), FRAC_CONST(0.026176949962974)},
                                         {FRAC_CONST(0.998629510402679), FRAC_CONST(0.052335958927870)},   {FRAC_CONST(0.996917307376862), FRAC_CONST(0.078459098935127)},
                                         {FRAC_CONST(0.994521915912628), FRAC_CONST(0.104528464376926)},   {FRAC_CONST(0.991444885730743), FRAC_CONST(0.130526199936867)},
                                         {FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580)},   {FRAC_CONST(0.983254909515381), FRAC_CONST(0.182235524058342)},
                                         {FRAC_CONST(0.978147625923157), FRAC_CONST(0.207911700010300)},   {FRAC_CONST(0.972369909286499), FRAC_CONST(0.233445376157761)},
                                         {FRAC_CONST(0.965925812721252), FRAC_CONST(0.258819043636322)},   {FRAC_CONST(0.958819746971130), FRAC_CONST(0.284015357494354)},
                                         {FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550)},   {FRAC_CONST(0.942641496658325), FRAC_CONST(0.333806872367859)},
                                         {FRAC_CONST(0.933580398559570), FRAC_CONST(0.358367949724197)},   {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},
                                         {FRAC_CONST(0.913545429706573), FRAC_CONST(0.406736642122269)},   {FRAC_CONST(0.902585268020630), FRAC_CONST(0.430511116981506)},
                                         {FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783)},   {FRAC_CONST(0.878817081451416), FRAC_CONST(0.477158784866333)},
                                         {FRAC_CONST(0.866025388240814), FRAC_CONST(0.500000000000000)},   {FRAC_CONST(0.852640151977539), FRAC_CONST(0.522498548030853)},
                                         {FRAC_CONST(0.838670551776886), FRAC_CONST(0.544639050960541)},   {FRAC_CONST(0.824126183986664), FRAC_CONST(0.566406250000000)},
                                         {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.793353319168091), FRAC_CONST(0.608761429786682)},
                                         {FRAC_CONST(0.777145922183990), FRAC_CONST(0.629320383071899)},   {FRAC_CONST(0.760405957698822), FRAC_CONST(0.649448096752167)},
                                         {FRAC_CONST(0.743144810199738), FRAC_CONST(0.669130623340607)},   {FRAC_CONST(0.725374400615692), FRAC_CONST(0.688354551792145)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.688354551792145), FRAC_CONST(0.725374400615692)},
                                         {FRAC_CONST(0.669130563735962), FRAC_CONST(0.743144869804382)},   {FRAC_CONST(0.649448037147522), FRAC_CONST(0.760405957698822)},
                                         {FRAC_CONST(0.629320383071899), FRAC_CONST(0.777145981788635)},   {FRAC_CONST(0.608761370182037), FRAC_CONST(0.793353378772736)},
                                         {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},   {FRAC_CONST(0.566406250000000), FRAC_CONST(0.824126183986664)},
                                         {FRAC_CONST(0.544638991355896), FRAC_CONST(0.838670611381531)},   {FRAC_CONST(0.522498488426209), FRAC_CONST(0.852640211582184)},
                                         {FRAC_CONST(0.499999970197678), FRAC_CONST(0.866025447845459)},   {FRAC_CONST(0.477158755064011), FRAC_CONST(0.878817141056061)},
                                         {FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207)},   {FRAC_CONST(0.430511027574539), FRAC_CONST(0.902585327625275)},
                                         {FRAC_CONST(0.406736612319946), FRAC_CONST(0.913545489311218)},   {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},
                                         {FRAC_CONST(0.358367860317230), FRAC_CONST(0.933580458164215)},   {FRAC_CONST(0.333806812763214), FRAC_CONST(0.942641496658325)},
                                         {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},   {FRAC_CONST(0.284015327692032), FRAC_CONST(0.958819746971130)},
                                         {FRAC_CONST(0.258819073438644), FRAC_CONST(0.965925812721252)},   {FRAC_CONST(0.233445301651955), FRAC_CONST(0.972369909286499)},
                                         {FRAC_CONST(0.207911655306816), FRAC_CONST(0.978147625923157)},   {FRAC_CONST(0.182235524058342), FRAC_CONST(0.983254909515381)},
                                         {FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419)},   {FRAC_CONST(0.130526125431061), FRAC_CONST(0.991444885730743)},
                                         {FRAC_CONST(0.104528419673443), FRAC_CONST(0.994521915912628)},   {FRAC_CONST(0.078459084033966), FRAC_CONST(0.996917307376862)},
                                         {FRAC_CONST(0.052335973829031), FRAC_CONST(0.998629510402679)},   {FRAC_CONST(0.026176875457168), FRAC_CONST(0.999657332897186)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.026176963001490), FRAC_CONST(0.999657332897186)},
                                         {FRAC_CONST(-0.052336059510708), FRAC_CONST(0.998629510402679)},  {FRAC_CONST(-0.078459173440933), FRAC_CONST(0.996917307376862)},
                                         {FRAC_CONST(-0.104528509080410), FRAC_CONST(0.994521915912628)},  {FRAC_CONST(-0.130526214838028), FRAC_CONST(0.991444885730743)},
                                         {FRAC_CONST(-0.156434446573257), FRAC_CONST(0.987688362598419)},  {FRAC_CONST(-0.182235598564148), FRAC_CONST(0.983254909515381)},
                                         {FRAC_CONST(-0.207911744713783), FRAC_CONST(0.978147566318512)},  {FRAC_CONST(-0.233445391058922), FRAC_CONST(0.972369909286499)},
                                         {FRAC_CONST(-0.258819162845612), FRAC_CONST(0.965925812721252)},  {FRAC_CONST(-0.284015417098999), FRAC_CONST(0.958819687366486)},
                                         {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.333806872367859), FRAC_CONST(0.942641496658325)},
                                         {FRAC_CONST(-0.358367949724197), FRAC_CONST(0.933580458164215)},  {FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796)},
                                         {FRAC_CONST(-0.406736701726913), FRAC_CONST(0.913545429706573)},  {FRAC_CONST(-0.430511116981506), FRAC_CONST(0.902585268020630)},
                                         {FRAC_CONST(-0.453990608453751), FRAC_CONST(0.891006469726563)},  {FRAC_CONST(-0.477158725261688), FRAC_CONST(0.878817141056061)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.998629510402679), FRAC_CONST(0.052335958927870)},
                                         {FRAC_CONST(0.994521915912628), FRAC_CONST(0.104528464376926)},   {FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580)},
                                         {FRAC_CONST(0.978147625923157), FRAC_CONST(0.207911700010300)},   {FRAC_CONST(0.965925812721252), FRAC_CONST(0.258819043636322)},
                                         {FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550)},   {FRAC_CONST(0.933580398559570), FRAC_CONST(0.358367949724197)},
                                         {FRAC_CONST(0.913545429706573), FRAC_CONST(0.406736642122269)},   {FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783)},
                                         {FRAC_CONST(0.866025388240814), FRAC_CONST(0.500000000000000)},   {FRAC_CONST(0.838670551776886), FRAC_CONST(0.544639050960541)},
                                         {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.777145922183990), FRAC_CONST(0.629320383071899)},
                                         {FRAC_CONST(0.743144810199738), FRAC_CONST(0.669130623340607)},   {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},
                                         {FRAC_CONST(0.669130563735962), FRAC_CONST(0.743144869804382)},   {FRAC_CONST(0.629320383071899), FRAC_CONST(0.777145981788635)},
                                         {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},   {FRAC_CONST(0.544638991355896), FRAC_CONST(0.838670611381531)},
                                         {FRAC_CONST(0.499999970197678), FRAC_CONST(0.866025447845459)},   {FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207)},
                                         {FRAC_CONST(0.406736612319946), FRAC_CONST(0.913545489311218)},   {FRAC_CONST(0.358367860317230), FRAC_CONST(0.933580458164215)},
                                         {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},   {FRAC_CONST(0.258819073438644), FRAC_CONST(0.965925812721252)},
                                         {FRAC_CONST(0.207911655306816), FRAC_CONST(0.978147625923157)},   {FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419)},
                                         {FRAC_CONST(0.104528419673443), FRAC_CONST(0.994521915912628)},   {FRAC_CONST(0.052335973829031), FRAC_CONST(0.998629510402679)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.052336059510708), FRAC_CONST(0.998629510402679)},
                                         {FRAC_CONST(-0.104528509080410), FRAC_CONST(0.994521915912628)},  {FRAC_CONST(-0.156434446573257), FRAC_CONST(0.987688362598419)},
                                         {FRAC_CONST(-0.207911744713783), FRAC_CONST(0.978147566318512)},  {FRAC_CONST(-0.258819162845612), FRAC_CONST(0.965925812721252)},
                                         {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.358367949724197), FRAC_CONST(0.933580458164215)},
                                         {FRAC_CONST(-0.406736701726913), FRAC_CONST(0.913545429706573)},  {FRAC_CONST(-0.453990608453751), FRAC_CONST(0.891006469726563)},
                                         {FRAC_CONST(-0.500000059604645), FRAC_CONST(0.866025388240814)},  {FRAC_CONST(-0.544639050960541), FRAC_CONST(0.838670551776886)},
                                         {FRAC_CONST(-0.587785184383392), FRAC_CONST(0.809017002582550)},  {FRAC_CONST(-0.629320502281189), FRAC_CONST(0.777145862579346)},
                                         {FRAC_CONST(-0.669130682945251), FRAC_CONST(0.743144810199738)},  {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},
                                         {FRAC_CONST(-0.743144929409027), FRAC_CONST(0.669130444526672)},  {FRAC_CONST(-0.777146041393280), FRAC_CONST(0.629320263862610)},
                                         {FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392)},  {FRAC_CONST(-0.838670551776886), FRAC_CONST(0.544639050960541)},
                                         {FRAC_CONST(-0.866025388240814), FRAC_CONST(0.500000059604645)},  {FRAC_CONST(-0.891006588935852), FRAC_CONST(0.453990370035172)},
                                         {FRAC_CONST(-0.913545489311218), FRAC_CONST(0.406736582517624)},  {FRAC_CONST(-0.933580458164215), FRAC_CONST(0.358367919921875)},
                                         {FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293)},  {FRAC_CONST(-0.965925872325897), FRAC_CONST(0.258818924427032)},
                                         {FRAC_CONST(-0.978147625923157), FRAC_CONST(0.207911610603333)},  {FRAC_CONST(-0.987688362598419), FRAC_CONST(0.156434446573257)},
                                         {FRAC_CONST(-0.994521915912628), FRAC_CONST(0.104528494179249)},  {FRAC_CONST(-0.998629570007324), FRAC_CONST(0.052335809916258)},
                                         {FRAC_CONST(-1.000000000000000), FRAC_CONST(-0.000000087422777)}, {FRAC_CONST(-0.998629510402679), FRAC_CONST(-0.052335985004902)},
                                         {FRAC_CONST(-0.994521856307983), FRAC_CONST(-0.104528672993183)}, {FRAC_CONST(-0.987688302993774), FRAC_CONST(-0.156434610486031)},
                                         {FRAC_CONST(-0.978147566318512), FRAC_CONST(-0.207911789417267)}, {FRAC_CONST(-0.965925812721252), FRAC_CONST(-0.258819073438644)},
                                         {FRAC_CONST(-0.951056540012360), FRAC_CONST(-0.309016972780228)}, {FRAC_CONST(-0.933580398559570), FRAC_CONST(-0.358368098735809)},
                                         {FRAC_CONST(-0.913545429706573), FRAC_CONST(-0.406736731529236)}, {FRAC_CONST(-0.891006529331207), FRAC_CONST(-0.453990548849106)},
                                         {FRAC_CONST(-0.866025269031525), FRAC_CONST(-0.500000178813934)}, {FRAC_CONST(-0.838670492172241), FRAC_CONST(-0.544639170169830)},
                                         {FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327)}, {FRAC_CONST(-0.777145922183990), FRAC_CONST(-0.629320442676544)},
                                         {FRAC_CONST(-0.743144810199738), FRAC_CONST(-0.669130623340607)}, {FRAC_CONST(-0.707106649875641), FRAC_CONST(-0.707106888294220)},
                                         {FRAC_CONST(-0.669130504131317), FRAC_CONST(-0.743144869804382)}, {FRAC_CONST(-0.629320323467255), FRAC_CONST(-0.777145981788635)},
                                         {FRAC_CONST(-0.587785065174103), FRAC_CONST(-0.809017121791840)}, {FRAC_CONST(-0.544639110565186), FRAC_CONST(-0.838670551776886)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.996917307376862), FRAC_CONST(0.078459098935127)},
                                         {FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580)},   {FRAC_CONST(0.972369909286499), FRAC_CONST(0.233445376157761)},
                                         {FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550)},   {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},
                                         {FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783)},   {FRAC_CONST(0.852640151977539), FRAC_CONST(0.522498548030853)},
                                         {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.760405957698822), FRAC_CONST(0.649448096752167)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.649448037147522), FRAC_CONST(0.760405957698822)},
                                         {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},   {FRAC_CONST(0.522498488426209), FRAC_CONST(0.852640211582184)},
                                         {FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207)},   {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},
                                         {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},   {FRAC_CONST(0.233445301651955), FRAC_CONST(0.972369909286499)},
                                         {FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419)},   {FRAC_CONST(0.078459084033966), FRAC_CONST(0.996917307376862)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580)},
                                         {FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550)},   {FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783)},
                                         {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},
                                         {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},   {FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207)},
                                         {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},   {FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.156434446573257), FRAC_CONST(0.987688362598419)},
                                         {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.453990608453751), FRAC_CONST(0.891006469726563)},
                                         {FRAC_CONST(-0.587785184383392), FRAC_CONST(0.809017002582550)},  {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},
                                         {FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392)},  {FRAC_CONST(-0.891006588935852), FRAC_CONST(0.453990370035172)},
                                         {FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293)},  {FRAC_CONST(-0.987688362598419), FRAC_CONST(0.156434446573257)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.972369909286499), FRAC_CONST(0.233445376157761)},
                                         {FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783)},   {FRAC_CONST(0.760405957698822), FRAC_CONST(0.649448096752167)},
                                         {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},   {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},
                                         {FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419)},   {FRAC_CONST(-0.078459173440933), FRAC_CONST(0.996917307376862)},
                                         {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.522498667240143), FRAC_CONST(0.852640092372894)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.852640211582184), FRAC_CONST(0.522498488426209)},
                                         {FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293)},  {FRAC_CONST(-0.996917366981506), FRAC_CONST(0.078459039330482)},
                                         {FRAC_CONST(-0.987688302993774), FRAC_CONST(-0.156434610486031)}, {FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739)},
                                         {FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327)}, {FRAC_CONST(-0.649447917938232), FRAC_CONST(-0.760406076908112)},
                                         {FRAC_CONST(-0.453990221023560), FRAC_CONST(-0.891006648540497)}, {FRAC_CONST(-0.233445450663567), FRAC_CONST(-0.972369909286499)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550)},
                                         {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},
                                         {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},   {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},
                                         {FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037)},   {FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360)},
                                         {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550)},
                                         {FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715)},  {FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293)},
                                         {FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327)}, {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.309017121791840), FRAC_CONST(-0.951056480407715)}};
    #endif

#endif

 const complex_t cfft_tab_128[] = {{FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.998795449733734), FRAC_CONST(0.049067676067352)},
                                         {FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954)},   {FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116)},
                                         {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},   {FRAC_CONST(0.970031261444092), FRAC_CONST(0.242980197072029)},
                                         {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},   {FRAC_CONST(0.941544055938721), FRAC_CONST(0.336889863014221)},
                                         {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516)},
                                         {FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251)},   {FRAC_CONST(0.857728600502014), FRAC_CONST(0.514102756977081)},
                                         {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.803207516670227), FRAC_CONST(0.595699310302734)},
                                         {FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733)},   {FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.671558916568756), FRAC_CONST(0.740951180458069)},
                                         {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},   {FRAC_CONST(0.595699310302734), FRAC_CONST(0.803207516670227)},
                                         {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},   {FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659)},
                                         {FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318)},   {FRAC_CONST(0.427555114030838), FRAC_CONST(0.903989315032959)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.336889833211899), FRAC_CONST(0.941544055938721)},
                                         {FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718)},   {FRAC_CONST(0.242980122566223), FRAC_CONST(0.970031261444092)},
                                         {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},   {FRAC_CONST(0.146730497479439), FRAC_CONST(0.989176511764526)},
                                         {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},   {FRAC_CONST(0.049067649990320), FRAC_CONST(0.998795449733734)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.049067739397287), FRAC_CONST(0.998795449733734)},
                                         {FRAC_CONST(-0.098017223179340), FRAC_CONST(0.995184719562531)},  {FRAC_CONST(-0.146730571985245), FRAC_CONST(0.989176511764526)},
                                         {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},  {FRAC_CONST(-0.242980197072029), FRAC_CONST(0.970031261444092)},
                                         {FRAC_CONST(-0.290284723043442), FRAC_CONST(0.956940293312073)},  {FRAC_CONST(-0.336889922618866), FRAC_CONST(0.941544055938721)},
                                         {FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796)},  {FRAC_CONST(-0.427555084228516), FRAC_CONST(0.903989315032959)},
                                         {FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674)},  {FRAC_CONST(-0.514102756977081), FRAC_CONST(0.857728600502014)},
                                         {FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637)},  {FRAC_CONST(-0.595699369907379), FRAC_CONST(0.803207516670227)},
                                         {FRAC_CONST(-0.634393274784088), FRAC_CONST(0.773010492324829)},  {FRAC_CONST(-0.671559035778046), FRAC_CONST(0.740951061248779)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.740951240062714), FRAC_CONST(0.671558856964111)},
                                         {FRAC_CONST(-0.773010492324829), FRAC_CONST(0.634393274784088)},  {FRAC_CONST(-0.803207635879517), FRAC_CONST(0.595699131488800)},
                                         {FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479)},  {FRAC_CONST(-0.857728600502014), FRAC_CONST(0.514102756977081)},
                                         {FRAC_CONST(-0.881921350955963), FRAC_CONST(0.471396625041962)},  {FRAC_CONST(-0.903989315032959), FRAC_CONST(0.427555054426193)},
                                         {FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127)},  {FRAC_CONST(-0.941544115543365), FRAC_CONST(0.336889803409576)},
                                         {FRAC_CONST(-0.956940352916718), FRAC_CONST(0.290284723043442)},  {FRAC_CONST(-0.970031261444092), FRAC_CONST(0.242980077862740)},
                                         {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},  {FRAC_CONST(-0.989176511764526), FRAC_CONST(0.146730333566666)},
                                         {FRAC_CONST(-0.995184719562531), FRAC_CONST(0.098017096519470)},  {FRAC_CONST(-0.998795449733734), FRAC_CONST(0.049067486077547)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954)},
                                         {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},   {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},
                                         {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251)},
                                         {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},
                                         {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},   {FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718)},
                                         {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},   {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600)},
                                         {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},   {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},
                                         {FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796)},  {FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479)},
                                         {FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127)},  {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797)},
                                         {FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124)},   {FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184)},
                                         {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},   {FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531)},
                                         {FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757)},  {FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.881921231746674), FRAC_CONST(0.471396833658218)},
                                         {FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439)},  {FRAC_CONST(-0.995184719562531), FRAC_CONST(-0.098017267882824)},
                                         {FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739)}, {FRAC_CONST(-0.773010551929474), FRAC_CONST(-0.634393215179443)},
                                         {FRAC_CONST(-0.555570006370544), FRAC_CONST(-0.831469774246216)}, {FRAC_CONST(-0.290284544229507), FRAC_CONST(-0.956940352916718)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061)},
                                         {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},   {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930)},
                                         {FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000)},  {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796)},
                                         {FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930)},  {FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},
                                         {FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000)},   {FRAC_CONST(0.000000011924881), FRAC_CONST(-1.000000000000000)}};

 const int32_t tns_coef_0_3[] = {COEF_CONST(0.0),           COEF_CONST(0.4338837391),  COEF_CONST(0.7818314825),  COEF_CONST(0.9749279122),  COEF_CONST(-0.9848077530), COEF_CONST(-0.8660254038),
                                 COEF_CONST(-0.6427876097), COEF_CONST(-0.3420201433), COEF_CONST(-0.4338837391), COEF_CONST(-0.7818314825), COEF_CONST(-0.9749279122), COEF_CONST(-0.9749279122),
                                 COEF_CONST(-0.9848077530), COEF_CONST(-0.8660254038), COEF_CONST(-0.6427876097), COEF_CONST(-0.3420201433)};
 const int32_t tns_coef_0_4[] = {COEF_CONST(0.0),           COEF_CONST(0.2079116908),  COEF_CONST(0.4067366431),  COEF_CONST(0.5877852523),  COEF_CONST(0.7431448255),  COEF_CONST(0.8660254038),
                                 COEF_CONST(0.9510565163),  COEF_CONST(0.9945218954),  COEF_CONST(-0.9957341763), COEF_CONST(-0.9618256432), COEF_CONST(-0.8951632914), COEF_CONST(-0.7980172273),
                                 COEF_CONST(-0.6736956436), COEF_CONST(-0.5264321629), COEF_CONST(-0.3612416662), COEF_CONST(-0.1837495178)};
 const int32_t tns_coef_1_3[] = {COEF_CONST(0.0),           COEF_CONST(0.4338837391),  COEF_CONST(-0.6427876097), COEF_CONST(-0.3420201433), COEF_CONST(0.9749279122),  COEF_CONST(0.7818314825),
                                 COEF_CONST(-0.6427876097), COEF_CONST(-0.3420201433), COEF_CONST(-0.4338837391), COEF_CONST(-0.7818314825), COEF_CONST(-0.6427876097), COEF_CONST(-0.3420201433),
                                 COEF_CONST(-0.7818314825), COEF_CONST(-0.4338837391), COEF_CONST(-0.6427876097), COEF_CONST(-0.3420201433)};
 const int32_t tns_coef_1_4[] = {COEF_CONST(0.0),           COEF_CONST(0.2079116908),  COEF_CONST(0.4067366431),  COEF_CONST(0.5877852523), COEF_CONST(-0.6736956436), COEF_CONST(-0.5264321629),
                                 COEF_CONST(-0.3612416662), COEF_CONST(-0.1837495178), COEF_CONST(0.9945218954),  COEF_CONST(0.9510565163), COEF_CONST(0.8660254038),  COEF_CONST(0.7431448255),
                                 COEF_CONST(-0.6736956436), COEF_CONST(-0.5264321629), COEF_CONST(-0.3612416662), COEF_CONST(-0.1837495178)};

 const int32_t sine_long_1024[] = {
    FRAC_CONST(0.00076699031874270449), FRAC_CONST(0.002300969151425805),  FRAC_CONST(0.0038349425697062275), FRAC_CONST(0.0053689069639963425), FRAC_CONST(0.0069028587247297558),
    FRAC_CONST(0.0084367942423697988),  FRAC_CONST(0.0099707099074180308), FRAC_CONST(0.011504602110422714),  FRAC_CONST(0.013038467241987334),  FRAC_CONST(0.014572301692779064),
    FRAC_CONST(0.016106101853537287),   FRAC_CONST(0.017639864115082053),  FRAC_CONST(0.019173584868322623),  FRAC_CONST(0.020707260504265895),  FRAC_CONST(0.022240887414024961),
    FRAC_CONST(0.023774461988827555),   FRAC_CONST(0.025307980620024571),  FRAC_CONST(0.026841439699098531),  FRAC_CONST(0.028374835617672099),  FRAC_CONST(0.029908164767516555),
    FRAC_CONST(0.031441423540560301),   FRAC_CONST(0.032974608328897335),  FRAC_CONST(0.03450771552479575),   FRAC_CONST(0.036040741520706229),  FRAC_CONST(0.037573682709270494),
    FRAC_CONST(0.039106535483329888),   FRAC_CONST(0.040639296235933736),  FRAC_CONST(0.042171961360347947),  FRAC_CONST(0.043704527250063421),  FRAC_CONST(0.04523699029880459),
    FRAC_CONST(0.046769346900537863),   FRAC_CONST(0.048301593449480144),  FRAC_CONST(0.049833726340107277),  FRAC_CONST(0.051365741967162593),  FRAC_CONST(0.052897636725665324),
    FRAC_CONST(0.054429407010919133),   FRAC_CONST(0.055961049218520569),  FRAC_CONST(0.057492559744367566),  FRAC_CONST(0.059023934984667931),  FRAC_CONST(0.060555171335947788),
    FRAC_CONST(0.062086265195060088),   FRAC_CONST(0.063617212959193106),  FRAC_CONST(0.065148011025878833),  FRAC_CONST(0.066678655793001557),  FRAC_CONST(0.068209143658806329),
    FRAC_CONST(0.069739471021907307),   FRAC_CONST(0.071269634281296401),  FRAC_CONST(0.072799629836351673),  FRAC_CONST(0.074329454086845756),  FRAC_CONST(0.075859103432954447),
    FRAC_CONST(0.077388574275265049),   FRAC_CONST(0.078917863014784942),  FRAC_CONST(0.080446966052950014),  FRAC_CONST(0.081975879791633066),  FRAC_CONST(0.083504600633152432),
    FRAC_CONST(0.085033124980280275),   FRAC_CONST(0.08656144923625117),   FRAC_CONST(0.088089569804770507),  FRAC_CONST(0.089617483090022959),  FRAC_CONST(0.091145185496681005),
    FRAC_CONST(0.09267267342991331),    FRAC_CONST(0.094199943295393204),  FRAC_CONST(0.095726991499307162),  FRAC_CONST(0.097253814448363271),  FRAC_CONST(0.098780408549799623),
    FRAC_CONST(0.10030677021139286),    FRAC_CONST(0.10183289584146653),   FRAC_CONST(0.10335878184889961),   FRAC_CONST(0.10488442464313497),   FRAC_CONST(0.10640982063418768),
    FRAC_CONST(0.10793496623265365),    FRAC_CONST(0.10945985784971798),   FRAC_CONST(0.11098449189716339),   FRAC_CONST(0.11250886478737869),   FRAC_CONST(0.1140329729333672),
    FRAC_CONST(0.11555681274875526),    FRAC_CONST(0.11708038064780059),   FRAC_CONST(0.11860367304540072),   FRAC_CONST(0.1201266863571015),    FRAC_CONST(0.12164941699910553),
    FRAC_CONST(0.12317186138828048),    FRAC_CONST(0.12469401594216764),   FRAC_CONST(0.12621587707899035),   FRAC_CONST(0.12773744121766231),   FRAC_CONST(0.12925870477779614),
    FRAC_CONST(0.13077966417971171),    FRAC_CONST(0.13230031584444465),   FRAC_CONST(0.13382065619375472),   FRAC_CONST(0.13534068165013421),   FRAC_CONST(0.13686038863681638),
    FRAC_CONST(0.13837977357778389),    FRAC_CONST(0.13989883289777721),   FRAC_CONST(0.14141756302230302),   FRAC_CONST(0.14293596037764267),   FRAC_CONST(0.14445402139086047),
    FRAC_CONST(0.14597174248981221),    FRAC_CONST(0.14748912010315357),   FRAC_CONST(0.14900615066034845),   FRAC_CONST(0.1505228305916774),    FRAC_CONST(0.15203915632824605),
    FRAC_CONST(0.15355512430199345),    FRAC_CONST(0.15507073094570051),   FRAC_CONST(0.15658597269299843),   FRAC_CONST(0.15810084597837698),   FRAC_CONST(0.15961534723719306),
    FRAC_CONST(0.16112947290567881),    FRAC_CONST(0.16264321942095031),   FRAC_CONST(0.16415658322101581),   FRAC_CONST(0.16566956074478412),   FRAC_CONST(0.16718214843207294),
    FRAC_CONST(0.16869434272361733),    FRAC_CONST(0.17020614006107807),   FRAC_CONST(0.17171753688704997),   FRAC_CONST(0.17322852964507032),   FRAC_CONST(0.1747391147796272),
    FRAC_CONST(0.17624928873616788),    FRAC_CONST(0.17775904796110717),   FRAC_CONST(0.17926838890183575),   FRAC_CONST(0.18077730800672859),   FRAC_CONST(0.1822858017251533),
    FRAC_CONST(0.18379386650747845),    FRAC_CONST(0.1853014988050819),    FRAC_CONST(0.18680869507035927),   FRAC_CONST(0.18831545175673212),   FRAC_CONST(0.18982176531865641),
    FRAC_CONST(0.1913276322116309),     FRAC_CONST(0.19283304889220523),   FRAC_CONST(0.1943380118179886),    FRAC_CONST(0.19584251744765785),   FRAC_CONST(0.19734656224096592),
    FRAC_CONST(0.19885014265875009),    FRAC_CONST(0.20035325516294045),   FRAC_CONST(0.20185589621656805),   FRAC_CONST(0.20335806228377332),   FRAC_CONST(0.20485974982981442),
    FRAC_CONST(0.20636095532107551),    FRAC_CONST(0.20786167522507507),   FRAC_CONST(0.20936190601047416),   FRAC_CONST(0.21086164414708486),   FRAC_CONST(0.21236088610587842),
    FRAC_CONST(0.21385962835899375),    FRAC_CONST(0.21535786737974555),   FRAC_CONST(0.21685559964263262),   FRAC_CONST(0.21835282162334632),   FRAC_CONST(0.2198495297987787),
    FRAC_CONST(0.22134572064703081),    FRAC_CONST(0.22284139064742112),   FRAC_CONST(0.2243365362804936),    FRAC_CONST(0.22583115402802617),   FRAC_CONST(0.22732524037303886),
    FRAC_CONST(0.22881879179980222),    FRAC_CONST(0.23031180479384544),   FRAC_CONST(0.23180427584196478),   FRAC_CONST(0.23329620143223159),   FRAC_CONST(0.23478757805400097),
    FRAC_CONST(0.23627840219791957),    FRAC_CONST(0.23776867035593419),   FRAC_CONST(0.23925837902129998),   FRAC_CONST(0.24074752468858843),   FRAC_CONST(0.24223610385369601),
    FRAC_CONST(0.24372411301385216),    FRAC_CONST(0.24521154866762754),   FRAC_CONST(0.24669840731494241),   FRAC_CONST(0.24818468545707478),   FRAC_CONST(0.24967037959666857),
    FRAC_CONST(0.25115548623774192),    FRAC_CONST(0.25264000188569552),   FRAC_CONST(0.25412392304732062),   FRAC_CONST(0.25560724623080738),   FRAC_CONST(0.25708996794575312),
    FRAC_CONST(0.25857208470317034),    FRAC_CONST(0.26005359301549519),   FRAC_CONST(0.26153448939659552),   FRAC_CONST(0.263014770361779),     FRAC_CONST(0.26449443242780163),
    FRAC_CONST(0.26597347211287559),    FRAC_CONST(0.26745188593667762),   FRAC_CONST(0.26892967042035726),   FRAC_CONST(0.27040682208654482),   FRAC_CONST(0.27188333745935972),
    FRAC_CONST(0.27335921306441868),    FRAC_CONST(0.27483444542884394),   FRAC_CONST(0.27630903108127108),   FRAC_CONST(0.27778296655185769),   FRAC_CONST(0.27925624837229118),
    FRAC_CONST(0.28072887307579719),    FRAC_CONST(0.28220083719714756),   FRAC_CONST(0.28367213727266843),   FRAC_CONST(0.28514276984024867),   FRAC_CONST(0.28661273143934779),
    FRAC_CONST(0.28808201861100413),    FRAC_CONST(0.28955062789784303),   FRAC_CONST(0.29101855584408509),   FRAC_CONST(0.29248579899555388),   FRAC_CONST(0.29395235389968466),
    FRAC_CONST(0.29541821710553201),    FRAC_CONST(0.29688338516377827),   FRAC_CONST(0.2983478546267414),    FRAC_CONST(0.29981162204838335),   FRAC_CONST(0.30127468398431795),
    FRAC_CONST(0.30273703699181914),    FRAC_CONST(0.30419867762982911),   FRAC_CONST(0.30565960245896612),   FRAC_CONST(0.3071198080415331),    FRAC_CONST(0.30857929094152509),
    FRAC_CONST(0.31003804772463789),    FRAC_CONST(0.31149607495827591),   FRAC_CONST(0.3129533692115602),    FRAC_CONST(0.31440992705533666),   FRAC_CONST(0.31586574506218396),
    FRAC_CONST(0.31732081980642174),    FRAC_CONST(0.31877514786411848),   FRAC_CONST(0.32022872581309986),   FRAC_CONST(0.32168155023295658),   FRAC_CONST(0.32313361770505233),
    FRAC_CONST(0.32458492481253215),    FRAC_CONST(0.32603546814033024),   FRAC_CONST(0.327485244275178),     FRAC_CONST(0.3289342498056122),    FRAC_CONST(0.33038248132198278),
    FRAC_CONST(0.33182993541646111),    FRAC_CONST(0.33327660868304793),   FRAC_CONST(0.33472249771758122),   FRAC_CONST(0.33616759911774452),   FRAC_CONST(0.33761190948307462),
    FRAC_CONST(0.33905542541496964),    FRAC_CONST(0.34049814351669716),   FRAC_CONST(0.34194006039340219),   FRAC_CONST(0.34338117265211504),   FRAC_CONST(0.34482147690175929),
    FRAC_CONST(0.34626096975316001),    FRAC_CONST(0.34769964781905138),   FRAC_CONST(0.34913750771408497),   FRAC_CONST(0.35057454605483751),   FRAC_CONST(0.35201075945981908),
    FRAC_CONST(0.35344614454948081),    FRAC_CONST(0.35488069794622279),   FRAC_CONST(0.35631441627440241),   FRAC_CONST(0.3577472961603419),    FRAC_CONST(0.3591793342323365),
    FRAC_CONST(0.36061052712066227),    FRAC_CONST(0.36204087145758418),   FRAC_CONST(0.36347036387736376),   FRAC_CONST(0.36489900101626732),   FRAC_CONST(0.36632677951257359),
    FRAC_CONST(0.36775369600658198),    FRAC_CONST(0.36917974714062002),   FRAC_CONST(0.37060492955905167),   FRAC_CONST(0.37202923990828501),   FRAC_CONST(0.3734526748367803),
    FRAC_CONST(0.37487523099505754),    FRAC_CONST(0.37629690503570479),   FRAC_CONST(0.37771769361338564),   FRAC_CONST(0.37913759338484732),   FRAC_CONST(0.38055660100892852),
    FRAC_CONST(0.38197471314656722),    FRAC_CONST(0.38339192646080866),   FRAC_CONST(0.38480823761681288),   FRAC_CONST(0.38622364328186298),   FRAC_CONST(0.38763814012537273),
    FRAC_CONST(0.38905172481889438),    FRAC_CONST(0.39046439403612659),   FRAC_CONST(0.39187614445292235),   FRAC_CONST(0.3932869727472964),    FRAC_CONST(0.39469687559943356),
    FRAC_CONST(0.39610584969169627),    FRAC_CONST(0.39751389170863233),   FRAC_CONST(0.39892099833698291),   FRAC_CONST(0.40032716626569009),   FRAC_CONST(0.40173239218590501),
    FRAC_CONST(0.4031366727909953),     FRAC_CONST(0.404540004776553),     FRAC_CONST(0.40594238484040251),   FRAC_CONST(0.40734380968260797),   FRAC_CONST(0.40874427600548136),
    FRAC_CONST(0.41014378051359024),    FRAC_CONST(0.41154231991376522),   FRAC_CONST(0.41293989091510808),   FRAC_CONST(0.4143364902289991),    FRAC_CONST(0.41573211456910536),
    FRAC_CONST(0.41712676065138787),    FRAC_CONST(0.4185204251941097),    FRAC_CONST(0.41991310491784362),   FRAC_CONST(0.42130479654547964),   FRAC_CONST(0.42269549680223295),
    FRAC_CONST(0.42408520241565156),    FRAC_CONST(0.4254739101156238),    FRAC_CONST(0.42686161663438643),   FRAC_CONST(0.42824831870653196),   FRAC_CONST(0.42963401306901638),
    FRAC_CONST(0.43101869646116703),    FRAC_CONST(0.43240236562469014),   FRAC_CONST(0.43378501730367852),   FRAC_CONST(0.43516664824461926),   FRAC_CONST(0.4365472551964012),
    FRAC_CONST(0.43792683491032286),    FRAC_CONST(0.43930538414009995),   FRAC_CONST(0.4406828996418729),    FRAC_CONST(0.4420593781742147),    FRAC_CONST(0.44343481649813848),
    FRAC_CONST(0.44480921137710488),    FRAC_CONST(0.44618255957703007),   FRAC_CONST(0.44755485786629301),   FRAC_CONST(0.44892610301574326),   FRAC_CONST(0.45029629179870861),
    FRAC_CONST(0.45166542099100249),    FRAC_CONST(0.45303348737093158),   FRAC_CONST(0.45440048771930358),   FRAC_CONST(0.45576641881943464),   FRAC_CONST(0.45713127745715698),
    FRAC_CONST(0.45849506042082627),    FRAC_CONST(0.45985776450132954),   FRAC_CONST(0.46121938649209238),   FRAC_CONST(0.46257992318908681),   FRAC_CONST(0.46393937139083852),
    FRAC_CONST(0.4652977278984346),     FRAC_CONST(0.46665498951553092),   FRAC_CONST(0.46801115304835983),   FRAC_CONST(0.46936621530573752),   FRAC_CONST(0.4707201730990716),
    FRAC_CONST(0.47207302324236866),    FRAC_CONST(0.47342476255224153),   FRAC_CONST(0.47477538784791712),   FRAC_CONST(0.47612489595124358),   FRAC_CONST(0.47747328368669806),
    FRAC_CONST(0.47882054788139389),    FRAC_CONST(0.48016668536508839),   FRAC_CONST(0.48151169297018986),   FRAC_CONST(0.48285556753176567),   FRAC_CONST(0.48419830588754903),
    FRAC_CONST(0.48553990487794696),    FRAC_CONST(0.48688036134604734),   FRAC_CONST(0.48821967213762679),   FRAC_CONST(0.48955783410115744),   FRAC_CONST(0.49089484408781509),
    FRAC_CONST(0.49223069895148602),    FRAC_CONST(0.49356539554877477),   FRAC_CONST(0.49489893073901126),   FRAC_CONST(0.49623130138425825),   FRAC_CONST(0.49756250434931915),
    FRAC_CONST(0.49889253650174459),    FRAC_CONST(0.50022139471184068),   FRAC_CONST(0.50154907585267539),   FRAC_CONST(0.50287557680008699),   FRAC_CONST(0.50420089443269034),
    FRAC_CONST(0.50552502563188539),    FRAC_CONST(0.50684796728186321),   FRAC_CONST(0.5081697162696146),    FRAC_CONST(0.50949026948493636),   FRAC_CONST(0.51080962382043904),
    FRAC_CONST(0.51212777617155469),    FRAC_CONST(0.51344472343654346),   FRAC_CONST(0.5147604625165012),    FRAC_CONST(0.51607499031536663),   FRAC_CONST(0.51738830373992906),
    FRAC_CONST(0.51870039969983495),    FRAC_CONST(0.52001127510759604),   FRAC_CONST(0.52132092687859566),   FRAC_CONST(0.52262935193109661),   FRAC_CONST(0.5239365471862486),
    FRAC_CONST(0.52524250956809471),    FRAC_CONST(0.52654723600357944),   FRAC_CONST(0.52785072342255523),   FRAC_CONST(0.52915296875779061),   FRAC_CONST(0.53045396894497632),
    FRAC_CONST(0.53175372092273332),    FRAC_CONST(0.53305222163261945),   FRAC_CONST(0.53434946801913752),   FRAC_CONST(0.53564545702974109),   FRAC_CONST(0.53694018561484291),
    FRAC_CONST(0.5382336507278217),     FRAC_CONST(0.53952584932502889),   FRAC_CONST(0.54081677836579667),   FRAC_CONST(0.54210643481244392),   FRAC_CONST(0.5433948156302848),
    FRAC_CONST(0.54468191778763453),    FRAC_CONST(0.54596773825581757),   FRAC_CONST(0.54725227400917409),   FRAC_CONST(0.54853552202506739),   FRAC_CONST(0.54981747928389091),
    FRAC_CONST(0.55109814276907543),    FRAC_CONST(0.55237750946709607),   FRAC_CONST(0.55365557636747931),   FRAC_CONST(0.55493234046281037),   FRAC_CONST(0.55620779874873993),
    FRAC_CONST(0.55748194822399155),    FRAC_CONST(0.55875478589036831),   FRAC_CONST(0.56002630875276038),   FRAC_CONST(0.56129651381915147),   FRAC_CONST(0.56256539810062656),
    FRAC_CONST(0.56383295861137817),    FRAC_CONST(0.56509919236871398),   FRAC_CONST(0.56636409639306384),   FRAC_CONST(0.56762766770798623),   FRAC_CONST(0.56888990334017586),
    FRAC_CONST(0.5701508003194703),     FRAC_CONST(0.57141035567885723),   FRAC_CONST(0.57266856645448116),   FRAC_CONST(0.57392542968565075),   FRAC_CONST(0.57518094241484508),
    FRAC_CONST(0.57643510168772183),    FRAC_CONST(0.5776879045531228),    FRAC_CONST(0.57893934806308178),   FRAC_CONST(0.58018942927283168),   FRAC_CONST(0.58143814524081017),
    FRAC_CONST(0.58268549302866846),    FRAC_CONST(0.58393146970127618),   FRAC_CONST(0.58517607232673041),   FRAC_CONST(0.5864192979763605),    FRAC_CONST(0.58766114372473666),
    FRAC_CONST(0.58890160664967572),    FRAC_CONST(0.59014068383224882),   FRAC_CONST(0.59137837235678758),   FRAC_CONST(0.59261466931089113),   FRAC_CONST(0.59384957178543363),
    FRAC_CONST(0.59508307687456996),    FRAC_CONST(0.59631518167574371),   FRAC_CONST(0.59754588328969316),   FRAC_CONST(0.59877517882045872),   FRAC_CONST(0.60000306537538894),
    FRAC_CONST(0.6012295400651485),     FRAC_CONST(0.60245460000372375),   FRAC_CONST(0.60367824230843037),   FRAC_CONST(0.60490046409991982),   FRAC_CONST(0.60612126250218612),
    FRAC_CONST(0.60734063464257293),    FRAC_CONST(0.60855857765177945),   FRAC_CONST(0.60977508866386843),   FRAC_CONST(0.61099016481627166),   FRAC_CONST(0.61220380324979795),
    FRAC_CONST(0.61341600110863859),    FRAC_CONST(0.61462675554037505),   FRAC_CONST(0.61583606369598509),   FRAC_CONST(0.61704392272984976),   FRAC_CONST(0.61825032979976025),
    FRAC_CONST(0.61945528206692402),    FRAC_CONST(0.62065877669597214),   FRAC_CONST(0.62186081085496536),   FRAC_CONST(0.62306138171540126),   FRAC_CONST(0.62426048645222065),
    FRAC_CONST(0.62545812224381436),    FRAC_CONST(0.62665428627202935),   FRAC_CONST(0.62784897572217646),   FRAC_CONST(0.629042187783036),     FRAC_CONST(0.63023391964686437),
    FRAC_CONST(0.63142416850940186),    FRAC_CONST(0.63261293156987741),   FRAC_CONST(0.63380020603101728),   FRAC_CONST(0.63498598909904946),   FRAC_CONST(0.63617027798371217),
    FRAC_CONST(0.63735306989825913),    FRAC_CONST(0.63853436205946679),   FRAC_CONST(0.63971415168764045),   FRAC_CONST(0.64089243600662138),   FRAC_CONST(0.64206921224379254),
    FRAC_CONST(0.64324447763008585),    FRAC_CONST(0.64441822939998838),   FRAC_CONST(0.64559046479154869),   FRAC_CONST(0.64676118104638392),   FRAC_CONST(0.64793037540968534),
    FRAC_CONST(0.64909804513022595),    FRAC_CONST(0.65026418746036585),   FRAC_CONST(0.65142879965605982),   FRAC_CONST(0.65259187897686244),   FRAC_CONST(0.65375342268593606),
    FRAC_CONST(0.65491342805005603),    FRAC_CONST(0.6560718923396176),    FRAC_CONST(0.65722881282864254),   FRAC_CONST(0.65838418679478505),   FRAC_CONST(0.65953801151933866),
    FRAC_CONST(0.6606902842872423),     FRAC_CONST(0.66184100238708687),   FRAC_CONST(0.66299016311112147),   FRAC_CONST(0.66413776375526001),   FRAC_CONST(0.66528380161908718),
    FRAC_CONST(0.66642827400586524),    FRAC_CONST(0.66757117822254031),   FRAC_CONST(0.66871251157974798),   FRAC_CONST(0.66985227139182102),   FRAC_CONST(0.67099045497679422),
    FRAC_CONST(0.67212705965641173),    FRAC_CONST(0.67326208275613297),   FRAC_CONST(0.67439552160513905),   FRAC_CONST(0.67552737353633852),   FRAC_CONST(0.67665763588637495),
    FRAC_CONST(0.6777863059956315),     FRAC_CONST(0.67891338120823841),   FRAC_CONST(0.68003885887207893),   FRAC_CONST(0.68116273633879543),   FRAC_CONST(0.68228501096379557),
    FRAC_CONST(0.68340568010625868),    FRAC_CONST(0.6845247411291423),    FRAC_CONST(0.68564219139918747),   FRAC_CONST(0.68675802828692589),   FRAC_CONST(0.68787224916668555),
    FRAC_CONST(0.68898485141659704),    FRAC_CONST(0.69009583241859995),   FRAC_CONST(0.69120518955844845),   FRAC_CONST(0.69231292022571822),   FRAC_CONST(0.69341902181381176),
    FRAC_CONST(0.69452349171996552),    FRAC_CONST(0.69562632734525487),   FRAC_CONST(0.6967275260946012),    FRAC_CONST(0.69782708537677729),   FRAC_CONST(0.69892500260441415),
    FRAC_CONST(0.70002127519400625),    FRAC_CONST(0.70111590056591866),   FRAC_CONST(0.70220887614439187),   FRAC_CONST(0.70330019935754873),   FRAC_CONST(0.70438986763740041),
    FRAC_CONST(0.7054778784198521),     FRAC_CONST(0.70656422914470951),   FRAC_CONST(0.70764891725568435),   FRAC_CONST(0.70873194020040065),   FRAC_CONST(0.70981329543040084),
    FRAC_CONST(0.71089298040115168),    FRAC_CONST(0.71197099257204999),   FRAC_CONST(0.71304732940642923),   FRAC_CONST(0.71412198837156471),   FRAC_CONST(0.71519496693868001),
    FRAC_CONST(0.71626626258295312),    FRAC_CONST(0.71733587278352173),   FRAC_CONST(0.71840379502348972),   FRAC_CONST(0.71947002678993299),   FRAC_CONST(0.72053456557390527),
    FRAC_CONST(0.72159740887044366),    FRAC_CONST(0.72265855417857561),   FRAC_CONST(0.72371799900132339),   FRAC_CONST(0.72477574084571128),   FRAC_CONST(0.72583177722277037),
    FRAC_CONST(0.72688610564754497),    FRAC_CONST(0.72793872363909862),   FRAC_CONST(0.72898962872051931),   FRAC_CONST(0.73003881841892615),   FRAC_CONST(0.73108629026547423),
    FRAC_CONST(0.73213204179536129),    FRAC_CONST(0.73317607054783274),   FRAC_CONST(0.73421837406618817),   FRAC_CONST(0.73525894989778673),   FRAC_CONST(0.73629779559405306),
    FRAC_CONST(0.73733490871048279),    FRAC_CONST(0.73837028680664851),   FRAC_CONST(0.73940392744620576),   FRAC_CONST(0.74043582819689802),   FRAC_CONST(0.74146598663056329),
    FRAC_CONST(0.74249440032313918),    FRAC_CONST(0.74352106685466912),   FRAC_CONST(0.74454598380930725),   FRAC_CONST(0.74556914877532543),   FRAC_CONST(0.74659055934511731),
    FRAC_CONST(0.74761021311520515),    FRAC_CONST(0.74862810768624533),   FRAC_CONST(0.74964424066303348),   FRAC_CONST(0.75065860965451059),   FRAC_CONST(0.75167121227376843),
    FRAC_CONST(0.75268204613805523),    FRAC_CONST(0.75369110886878121),   FRAC_CONST(0.75469839809152439),   FRAC_CONST(0.75570391143603588),   FRAC_CONST(0.75670764653624567),
    FRAC_CONST(0.75770960103026808),    FRAC_CONST(0.75870977256040739),   FRAC_CONST(0.75970815877316344),   FRAC_CONST(0.76070475731923692),   FRAC_CONST(0.76169956585353527),
    FRAC_CONST(0.76269258203517787),    FRAC_CONST(0.76368380352750187),   FRAC_CONST(0.76467322799806714),   FRAC_CONST(0.76566085311866239),   FRAC_CONST(0.76664667656531038),
    FRAC_CONST(0.76763069601827327),    FRAC_CONST(0.76861290916205827),   FRAC_CONST(0.76959331368542294),   FRAC_CONST(0.7705719072813807),    FRAC_CONST(0.7715486876472063),
    FRAC_CONST(0.77252365248444133),    FRAC_CONST(0.77349679949889905),   FRAC_CONST(0.77446812640067086),   FRAC_CONST(0.77543763090413043),   FRAC_CONST(0.77640531072794039),
    FRAC_CONST(0.7773711635950562),     FRAC_CONST(0.77833518723273309),   FRAC_CONST(0.7792973793725303),    FRAC_CONST(0.78025773775031659),   FRAC_CONST(0.78121626010627609),
    FRAC_CONST(0.7821729441849129),     FRAC_CONST(0.78312778773505731),   FRAC_CONST(0.78408078850986995),   FRAC_CONST(0.78503194426684808),   FRAC_CONST(0.78598125276783015),
    FRAC_CONST(0.7869287117790017),     FRAC_CONST(0.78787431907090011),   FRAC_CONST(0.78881807241842017),   FRAC_CONST(0.78975996960081907),   FRAC_CONST(0.79070000840172161),
    FRAC_CONST(0.79163818660912577),    FRAC_CONST(0.79257450201540758),   FRAC_CONST(0.79350895241732666),   FRAC_CONST(0.79444153561603059),   FRAC_CONST(0.79537224941706119),
    FRAC_CONST(0.79630109163035911),    FRAC_CONST(0.7972280600702687),    FRAC_CONST(0.79815315255554375),   FRAC_CONST(0.79907636690935235),   FRAC_CONST(0.79999770095928191),
    FRAC_CONST(0.8009171525373443),     FRAC_CONST(0.80183471947998131),   FRAC_CONST(0.80275039962806916),   FRAC_CONST(0.80366419082692409),   FRAC_CONST(0.804576090926307),
    FRAC_CONST(0.80548609778042912),    FRAC_CONST(0.80639420924795624),   FRAC_CONST(0.80730042319201445),   FRAC_CONST(0.80820473748019472),   FRAC_CONST(0.80910714998455813),
    FRAC_CONST(0.81000765858164114),    FRAC_CONST(0.81090626115245967),   FRAC_CONST(0.81180295558251536),   FRAC_CONST(0.81269773976179949),   FRAC_CONST(0.81359061158479851),
    FRAC_CONST(0.81448156895049861),    FRAC_CONST(0.81537060976239129),   FRAC_CONST(0.81625773192847739),   FRAC_CONST(0.81714293336127297),   FRAC_CONST(0.81802621197781344),
    FRAC_CONST(0.81890756569965895),    FRAC_CONST(0.81978699245289899),   FRAC_CONST(0.82066449016815746),   FRAC_CONST(0.82154005678059761),   FRAC_CONST(0.82241369022992639),
    FRAC_CONST(0.82328538846040011),    FRAC_CONST(0.82415514942082857),   FRAC_CONST(0.82502297106458022),   FRAC_CONST(0.82588885134958678),   FRAC_CONST(0.82675278823834852),
    FRAC_CONST(0.8276147796979384),     FRAC_CONST(0.82847482370000713),   FRAC_CONST(0.82933291822078825),   FRAC_CONST(0.83018906124110237),   FRAC_CONST(0.83104325074636232),
    FRAC_CONST(0.83189548472657759),    FRAC_CONST(0.83274576117635946),   FRAC_CONST(0.83359407809492514),   FRAC_CONST(0.83444043348610319),   FRAC_CONST(0.83528482535833737),
    FRAC_CONST(0.83612725172469216),    FRAC_CONST(0.83696771060285702),   FRAC_CONST(0.83780620001515094),   FRAC_CONST(0.8386427179885273),    FRAC_CONST(0.83947726255457855),
    FRAC_CONST(0.84030983174954077),    FRAC_CONST(0.84114042361429808),   FRAC_CONST(0.84196903619438768),   FRAC_CONST(0.84279566754000412),   FRAC_CONST(0.84362031570600404),
    FRAC_CONST(0.84444297875191066),    FRAC_CONST(0.84526365474191822),   FRAC_CONST(0.84608234174489694),   FRAC_CONST(0.84689903783439735),   FRAC_CONST(0.84771374108865427),
    FRAC_CONST(0.84852644959059265),    FRAC_CONST(0.84933716142783067),   FRAC_CONST(0.85014587469268521),   FRAC_CONST(0.85095258748217573),   FRAC_CONST(0.85175729789802912),
    FRAC_CONST(0.85256000404668397),    FRAC_CONST(0.85336070403929543),   FRAC_CONST(0.85415939599173873),   FRAC_CONST(0.85495607802461482),   FRAC_CONST(0.85575074826325392),
    FRAC_CONST(0.85654340483771996),    FRAC_CONST(0.85733404588281559),   FRAC_CONST(0.85812266953808602),   FRAC_CONST(0.8589092739478239),    FRAC_CONST(0.85969385726107261),
    FRAC_CONST(0.86047641763163207),    FRAC_CONST(0.86125695321806206),   FRAC_CONST(0.86203546218368721),   FRAC_CONST(0.86281194269660033),   FRAC_CONST(0.86358639292966799),
    FRAC_CONST(0.86435881106053403),    FRAC_CONST(0.86512919527162369),   FRAC_CONST(0.86589754375014882),   FRAC_CONST(0.86666385468811102),   FRAC_CONST(0.86742812628230692),
    FRAC_CONST(0.86819035673433131),    FRAC_CONST(0.86895054425058238),   FRAC_CONST(0.86970868704226556),   FRAC_CONST(0.87046478332539767),   FRAC_CONST(0.8712188313208109),
    FRAC_CONST(0.8719708292541577),     FRAC_CONST(0.8727207753559143),    FRAC_CONST(0.87346866786138488),   FRAC_CONST(0.8742145050107063),    FRAC_CONST(0.87495828504885154),
    FRAC_CONST(0.8757000062256346),     FRAC_CONST(0.87643966679571361),   FRAC_CONST(0.87717726501859594),   FRAC_CONST(0.87791279915864173),   FRAC_CONST(0.87864626748506813),
    FRAC_CONST(0.87937766827195318),    FRAC_CONST(0.88010699979824036),   FRAC_CONST(0.88083426034774204),   FRAC_CONST(0.88155944820914378),   FRAC_CONST(0.8822825616760086),
    FRAC_CONST(0.88300359904678072),    FRAC_CONST(0.88372255862478966),   FRAC_CONST(0.8844394387182537),    FRAC_CONST(0.88515423764028511),   FRAC_CONST(0.88586695370889279),
    FRAC_CONST(0.88657758524698704),    FRAC_CONST(0.88728613058238315),   FRAC_CONST(0.88799258804780556),   FRAC_CONST(0.88869695598089171),   FRAC_CONST(0.88939923272419552),
    FRAC_CONST(0.89009941662519221),    FRAC_CONST(0.89079750603628149),   FRAC_CONST(0.89149349931479138),   FRAC_CONST(0.89218739482298248),   FRAC_CONST(0.89287919092805168),
    FRAC_CONST(0.89356888600213602),    FRAC_CONST(0.89425647842231604),   FRAC_CONST(0.89494196657062075),   FRAC_CONST(0.89562534883403),      FRAC_CONST(0.89630662360447966),
    FRAC_CONST(0.89698578927886397),    FRAC_CONST(0.89766284425904075),   FRAC_CONST(0.89833778695183419),   FRAC_CONST(0.89901061576903907),   FRAC_CONST(0.89968132912742393),
    FRAC_CONST(0.9003499254487356),     FRAC_CONST(0.90101640315970233),   FRAC_CONST(0.90168076069203773),   FRAC_CONST(0.9023429964824442),    FRAC_CONST(0.90300310897261704),
    FRAC_CONST(0.90366109660924798),    FRAC_CONST(0.90431695784402832),   FRAC_CONST(0.90497069113365325),   FRAC_CONST(0.90562229493982516),   FRAC_CONST(0.90627176772925766),
    FRAC_CONST(0.90691910797367803),    FRAC_CONST(0.90756431414983252),   FRAC_CONST(0.9082073847394887),    FRAC_CONST(0.90884831822943912),   FRAC_CONST(0.90948711311150543),
    FRAC_CONST(0.91012376788254157),    FRAC_CONST(0.91075828104443757),   FRAC_CONST(0.91139065110412232),   FRAC_CONST(0.91202087657356823),   FRAC_CONST(0.9126489559697939),
    FRAC_CONST(0.91327488781486776),    FRAC_CONST(0.91389867063591168),   FRAC_CONST(0.91452030296510445),   FRAC_CONST(0.91513978333968526),   FRAC_CONST(0.91575711030195672),
    FRAC_CONST(0.91637228239928914),    FRAC_CONST(0.91698529818412289),   FRAC_CONST(0.91759615621397295),   FRAC_CONST(0.9182048550514309),    FRAC_CONST(0.91881139326416994),
    FRAC_CONST(0.91941576942494696),    FRAC_CONST(0.92001798211160657),   FRAC_CONST(0.92061802990708386),   FRAC_CONST(0.92121591139940873),   FRAC_CONST(0.92181162518170812),
    FRAC_CONST(0.92240516985220988),    FRAC_CONST(0.92299654401424625),   FRAC_CONST(0.92358574627625656),   FRAC_CONST(0.9241727752517912),    FRAC_CONST(0.92475762955951391),
    FRAC_CONST(0.9253403078232062),     FRAC_CONST(0.92592080867176996),   FRAC_CONST(0.92649913073923051),   FRAC_CONST(0.9270752726647401),    FRAC_CONST(0.92764923309258118),
    FRAC_CONST(0.92822101067216944),    FRAC_CONST(0.92879060405805702),   FRAC_CONST(0.9293580119099355),    FRAC_CONST(0.92992323289263956),   FRAC_CONST(0.93048626567614978),
    FRAC_CONST(0.93104710893559517),    FRAC_CONST(0.93160576135125783),   FRAC_CONST(0.93216222160857432),   FRAC_CONST(0.93271648839814025),   FRAC_CONST(0.93326856041571205),
    FRAC_CONST(0.93381843636221096),    FRAC_CONST(0.9343661149437259),    FRAC_CONST(0.93491159487151609),   FRAC_CONST(0.93545487486201462),   FRAC_CONST(0.9359959536368313),
    FRAC_CONST(0.9365348299227555),     FRAC_CONST(0.93707150245175919),   FRAC_CONST(0.93760596996099999),   FRAC_CONST(0.93813823119282436),   FRAC_CONST(0.93866828489477017),
    FRAC_CONST(0.9391961298195699),     FRAC_CONST(0.93972176472515334),   FRAC_CONST(0.94024518837465088),   FRAC_CONST(0.94076639953639607),   FRAC_CONST(0.94128539698392866),
    FRAC_CONST(0.94180217949599765),    FRAC_CONST(0.94231674585656378),   FRAC_CONST(0.94282909485480271),   FRAC_CONST(0.94333922528510772),   FRAC_CONST(0.94384713594709269),
    FRAC_CONST(0.94435282564559475),    FRAC_CONST(0.94485629319067721),   FRAC_CONST(0.94535753739763229),   FRAC_CONST(0.94585655708698391),   FRAC_CONST(0.94635335108449059),
    FRAC_CONST(0.946847918221148),      FRAC_CONST(0.94734025733319194),   FRAC_CONST(0.94783036726210101),   FRAC_CONST(0.94831824685459909),   FRAC_CONST(0.94880389496265838),
    FRAC_CONST(0.94928731044350201),    FRAC_CONST(0.94976849215960668),   FRAC_CONST(0.95024743897870523),   FRAC_CONST(0.95072414977378961),   FRAC_CONST(0.95119862342311323),
    FRAC_CONST(0.95167085881019386),    FRAC_CONST(0.95214085482381583),   FRAC_CONST(0.95260861035803324),   FRAC_CONST(0.9530741243121722),    FRAC_CONST(0.95353739559083328),
    FRAC_CONST(0.95399842310389449),    FRAC_CONST(0.95445720576651349),   FRAC_CONST(0.95491374249913052),   FRAC_CONST(0.95536803222747024),   FRAC_CONST(0.95582007388254542),
    FRAC_CONST(0.95626986640065814),    FRAC_CONST(0.95671740872340305),   FRAC_CONST(0.9571626997976701),    FRAC_CONST(0.95760573857564624),   FRAC_CONST(0.9580465240148186),
    FRAC_CONST(0.9584850550779761),     FRAC_CONST(0.95892133073321306),   FRAC_CONST(0.95935534995393079),   FRAC_CONST(0.9597871117188399),    FRAC_CONST(0.96021661501196343),
    FRAC_CONST(0.96064385882263847),    FRAC_CONST(0.96106884214551935),   FRAC_CONST(0.961491563980579),     FRAC_CONST(0.9619120233331121),    FRAC_CONST(0.9623302192137374),
    FRAC_CONST(0.96274615063839941),    FRAC_CONST(0.96315981662837136),   FRAC_CONST(0.96357121621025721),   FRAC_CONST(0.96398034841599411),   FRAC_CONST(0.96438721228285429),
    FRAC_CONST(0.9647918068534479),     FRAC_CONST(0.96519413117572472),   FRAC_CONST(0.96559418430297683),   FRAC_CONST(0.96599196529384057),   FRAC_CONST(0.96638747321229879),
    FRAC_CONST(0.96678070712768327),    FRAC_CONST(0.96717166611467664),   FRAC_CONST(0.96756034925331436),   FRAC_CONST(0.9679467556289878),    FRAC_CONST(0.9683308843324453),
    FRAC_CONST(0.96871273445979478),    FRAC_CONST(0.9690923051125061),    FRAC_CONST(0.96946959539741295),   FRAC_CONST(0.96984460442671483),   FRAC_CONST(0.97021733131797916),
    FRAC_CONST(0.97058777519414363),    FRAC_CONST(0.97095593518351797),   FRAC_CONST(0.97132181041978616),   FRAC_CONST(0.97168540004200854),   FRAC_CONST(0.9720467031946235),
    FRAC_CONST(0.97240571902744977),    FRAC_CONST(0.97276244669568857),   FRAC_CONST(0.97311688535992513),   FRAC_CONST(0.97346903418613095),   FRAC_CONST(0.9738188923456661),
    FRAC_CONST(0.97416645901528032),    FRAC_CONST(0.97451173337711572),   FRAC_CONST(0.97485471461870843),   FRAC_CONST(0.97519540193299037),   FRAC_CONST(0.97553379451829136),
    FRAC_CONST(0.97586989157834103),    FRAC_CONST(0.97620369232227056),   FRAC_CONST(0.97653519596461447),   FRAC_CONST(0.97686440172531264),   FRAC_CONST(0.97719130882971228),
    FRAC_CONST(0.97751591650856928),    FRAC_CONST(0.97783822399805043),   FRAC_CONST(0.97815823053973505),   FRAC_CONST(0.97847593538061683),   FRAC_CONST(0.97879133777310567),
    FRAC_CONST(0.97910443697502925),    FRAC_CONST(0.97941523224963478),   FRAC_CONST(0.97972372286559117),   FRAC_CONST(0.98002990809698998),   FRAC_CONST(0.98033378722334796),
    FRAC_CONST(0.98063535952960812),    FRAC_CONST(0.98093462430614164),   FRAC_CONST(0.98123158084874973),   FRAC_CONST(0.98152622845866466),   FRAC_CONST(0.9818185664425525),
    FRAC_CONST(0.98210859411251361),    FRAC_CONST(0.98239631078608469),   FRAC_CONST(0.98268171578624086),   FRAC_CONST(0.98296480844139644),   FRAC_CONST(0.98324558808540707),
    FRAC_CONST(0.98352405405757126),    FRAC_CONST(0.98380020570263149),   FRAC_CONST(0.98407404237077645),   FRAC_CONST(0.9843455634176419),    FRAC_CONST(0.9846147682043126),
    FRAC_CONST(0.9848816560973237),     FRAC_CONST(0.98514622646866223),   FRAC_CONST(0.98540847869576842),   FRAC_CONST(0.98566841216153755),   FRAC_CONST(0.98592602625432113),
    FRAC_CONST(0.98618132036792827),    FRAC_CONST(0.98643429390162707),   FRAC_CONST(0.98668494626014669),   FRAC_CONST(0.98693327685367771),   FRAC_CONST(0.98717928509787434),
    FRAC_CONST(0.98742297041385541),    FRAC_CONST(0.98766433222820571),   FRAC_CONST(0.98790336997297779),   FRAC_CONST(0.98814008308569257),   FRAC_CONST(0.98837447100934128),
    FRAC_CONST(0.98860653319238645),    FRAC_CONST(0.98883626908876354),   FRAC_CONST(0.98906367815788154),   FRAC_CONST(0.98928875986462517),   FRAC_CONST(0.98951151367935519),
    FRAC_CONST(0.98973193907791057),    FRAC_CONST(0.98995003554160899),   FRAC_CONST(0.9901658025572484),    FRAC_CONST(0.99037923961710816),   FRAC_CONST(0.99059034621895015),
    FRAC_CONST(0.99079912186602037),    FRAC_CONST(0.99100556606704937),   FRAC_CONST(0.99120967833625406),   FRAC_CONST(0.99141145819333854),   FRAC_CONST(0.99161090516349537),
    FRAC_CONST(0.99180801877740643),    FRAC_CONST(0.99200279857124452),   FRAC_CONST(0.99219524408667392),   FRAC_CONST(0.99238535487085167),   FRAC_CONST(0.99257313047642881),
    FRAC_CONST(0.99275857046155114),    FRAC_CONST(0.99294167438986047),   FRAC_CONST(0.99312244183049558),   FRAC_CONST(0.99330087235809328),   FRAC_CONST(0.99347696555278919),
    FRAC_CONST(0.99365072100021912),    FRAC_CONST(0.99382213829151966),   FRAC_CONST(0.99399121702332938),   FRAC_CONST(0.99415795679778973),   FRAC_CONST(0.99432235722254581),
    FRAC_CONST(0.9944844179107476),     FRAC_CONST(0.99464413848105071),   FRAC_CONST(0.99480151855761711),   FRAC_CONST(0.99495655777011638),   FRAC_CONST(0.99510925575372611),
    FRAC_CONST(0.99525961214913339),    FRAC_CONST(0.9954076266025349),    FRAC_CONST(0.99555329876563847),   FRAC_CONST(0.99569662829566352),   FRAC_CONST(0.99583761485534161),
    FRAC_CONST(0.99597625811291779),    FRAC_CONST(0.99611255774215113),   FRAC_CONST(0.99624651342231552),   FRAC_CONST(0.99637812483820021),   FRAC_CONST(0.99650739168011082),
    FRAC_CONST(0.9966343136438699),     FRAC_CONST(0.996758890430818),     FRAC_CONST(0.99688112174781385),   FRAC_CONST(0.99700100730723529),   FRAC_CONST(0.99711854682697998),
    FRAC_CONST(0.99723374003046616),    FRAC_CONST(0.99734658664663323),   FRAC_CONST(0.99745708640994191),   FRAC_CONST(0.99756523906037575),   FRAC_CONST(0.997671044343441),
    FRAC_CONST(0.99777450201016782),    FRAC_CONST(0.99787561181711015),   FRAC_CONST(0.99797437352634699),   FRAC_CONST(0.99807078690548234),   FRAC_CONST(0.99816485172764624),
    FRAC_CONST(0.99825656777149518),    FRAC_CONST(0.99834593482121237),   FRAC_CONST(0.99843295266650844),   FRAC_CONST(0.99851762110262221),   FRAC_CONST(0.99859993993032037),
    FRAC_CONST(0.99867990895589909),    FRAC_CONST(0.99875752799118334),   FRAC_CONST(0.99883279685352799),   FRAC_CONST(0.99890571536581829),   FRAC_CONST(0.99897628335646982),
    FRAC_CONST(0.99904450065942929),    FRAC_CONST(0.99911036711417489),   FRAC_CONST(0.99917388256571638),   FRAC_CONST(0.99923504686459585),   FRAC_CONST(0.99929385986688779),
    FRAC_CONST(0.99935032143419944),    FRAC_CONST(0.9994044314336713),    FRAC_CONST(0.99945618973797734),   FRAC_CONST(0.99950559622532531),   FRAC_CONST(0.99955265077945699),
    FRAC_CONST(0.99959735328964838),    FRAC_CONST(0.9996397036507102),    FRAC_CONST(0.99967970176298793),   FRAC_CONST(0.99971734753236219),   FRAC_CONST(0.99975264087024884),
    FRAC_CONST(0.99978558169359921),    FRAC_CONST(0.99981616992490041),   FRAC_CONST(0.99984440549217524),   FRAC_CONST(0.99987028832898295),   FRAC_CONST(0.99989381837441849),
    FRAC_CONST(0.99991499557311347),    FRAC_CONST(0.999933819875236),     FRAC_CONST(0.99995029123649048),   FRAC_CONST(0.99996440961811828),   FRAC_CONST(0.99997617498689761),
    FRAC_CONST(0.9999855873151432),     FRAC_CONST(0.99999264658070719),   FRAC_CONST(0.99999735276697821),   FRAC_CONST(0.99999970586288223)};

#ifdef ALLOW_SMALL_FRAMELENGTH
 const int32_t sine_long_960[] = {
    FRAC_CONST(0.00081812299560725323), FRAC_CONST(0.0024543667964602917), FRAC_CONST(0.0040906040262347889), FRAC_CONST(0.0057268303042312674), FRAC_CONST(0.0073630412497795667),
    FRAC_CONST(0.0089992324822505774),  FRAC_CONST(0.010635399621067975),  FRAC_CONST(0.012271538285719924),  FRAC_CONST(0.013907644095770845),  FRAC_CONST(0.015543712670873098),
    FRAC_CONST(0.017179739630778748),   FRAC_CONST(0.018815720595351273),  FRAC_CONST(0.020451651184577292),  FRAC_CONST(0.022087527018578291),  FRAC_CONST(0.023723343717622358),
    FRAC_CONST(0.025359096902135895),   FRAC_CONST(0.02699478219271537),   FRAC_CONST(0.028630395210139003),  FRAC_CONST(0.030265931575378519),  FRAC_CONST(0.031901386909610863),
    FRAC_CONST(0.033536756834229922),   FRAC_CONST(0.035172036970858266),  FRAC_CONST(0.036807222941358832),  FRAC_CONST(0.038442310367846677),  FRAC_CONST(0.040077294872700696),
    FRAC_CONST(0.041712172078575326),   FRAC_CONST(0.043346937608412288),  FRAC_CONST(0.044981587085452281),  FRAC_CONST(0.046616116133246711),  FRAC_CONST(0.048250520375669431),
    FRAC_CONST(0.049884795436928406),   FRAC_CONST(0.051518936941577477),  FRAC_CONST(0.053152940514528055),  FRAC_CONST(0.05478680178106083),   FRAC_CONST(0.056420516366837495),
    FRAC_CONST(0.05805407989791244),    FRAC_CONST(0.059687488000744485),  FRAC_CONST(0.061320736302208578),  FRAC_CONST(0.062953820429607482),  FRAC_CONST(0.064586736010683557),
    FRAC_CONST(0.066219478673630344),   FRAC_CONST(0.06785204404710439),   FRAC_CONST(0.069484427760236861),  FRAC_CONST(0.071116625442645326),  FRAC_CONST(0.072748632724445372),
    FRAC_CONST(0.07438044523626236),    FRAC_CONST(0.076012058609243122),  FRAC_CONST(0.077643468475067631),  FRAC_CONST(0.079274670465960706),  FRAC_CONST(0.080905660214703745),
    FRAC_CONST(0.082536433354646319),   FRAC_CONST(0.084166985519717977),  FRAC_CONST(0.085797312344439894),  FRAC_CONST(0.08742740946393647),   FRAC_CONST(0.089057272513947183),
    FRAC_CONST(0.090686897130838162),   FRAC_CONST(0.092316278951613845),  FRAC_CONST(0.093945413613928788),  FRAC_CONST(0.095574296756099186),  FRAC_CONST(0.097202924017114667),
    FRAC_CONST(0.098831291036649963),   FRAC_CONST(0.10045939345507648),   FRAC_CONST(0.10208722691347409),   FRAC_CONST(0.10371478705364276),   FRAC_CONST(0.10534206951811415),
    FRAC_CONST(0.10696906995016341),    FRAC_CONST(0.10859578399382072),   FRAC_CONST(0.11022220729388306),   FRAC_CONST(0.11184833549592579),   FRAC_CONST(0.11347416424631435),
    FRAC_CONST(0.11509968919221586),    FRAC_CONST(0.11672490598161089),   FRAC_CONST(0.11834981026330495),   FRAC_CONST(0.11997439768694031),   FRAC_CONST(0.12159866390300751),
    FRAC_CONST(0.12322260456285709),    FRAC_CONST(0.12484621531871121),   FRAC_CONST(0.12646949182367517),   FRAC_CONST(0.12809242973174936),   FRAC_CONST(0.12971502469784052),
    FRAC_CONST(0.13133727237777362),    FRAC_CONST(0.13295916842830346),   FRAC_CONST(0.13458070850712617),   FRAC_CONST(0.13620188827289101),   FRAC_CONST(0.1378227033852118),
    FRAC_CONST(0.13944314950467873),    FRAC_CONST(0.14106322229286994),   FRAC_CONST(0.14268291741236291),   FRAC_CONST(0.14430223052674654),   FRAC_CONST(0.1459211573006321),
    FRAC_CONST(0.14753969339966552),    FRAC_CONST(0.14915783449053857),   FRAC_CONST(0.15077557624100058),   FRAC_CONST(0.15239291431987001),   FRAC_CONST(0.1540098443970461),
    FRAC_CONST(0.15562636214352044),    FRAC_CONST(0.15724246323138855),   FRAC_CONST(0.15885814333386142),   FRAC_CONST(0.16047339812527725),   FRAC_CONST(0.16208822328111283),
    FRAC_CONST(0.16370261447799525),    FRAC_CONST(0.16531656739371339),   FRAC_CONST(0.16693007770722967),   FRAC_CONST(0.16854314109869134),   FRAC_CONST(0.17015575324944232),
    FRAC_CONST(0.17176790984203447),    FRAC_CONST(0.17337960656023954),   FRAC_CONST(0.1749908390890603),    FRAC_CONST(0.17660160311474243),   FRAC_CONST(0.17821189432478593),
    FRAC_CONST(0.17982170840795647),    FRAC_CONST(0.18143104105429744),   FRAC_CONST(0.18303988795514095),   FRAC_CONST(0.1846482448031197),    FRAC_CONST(0.18625610729217834),
    FRAC_CONST(0.1878634711175852),     FRAC_CONST(0.18947033197594348),   FRAC_CONST(0.19107668556520319),   FRAC_CONST(0.19268252758467228),   FRAC_CONST(0.19428785373502844),
    FRAC_CONST(0.19589265971833042),    FRAC_CONST(0.19749694123802966),   FRAC_CONST(0.19910069399898173),   FRAC_CONST(0.20070391370745785),   FRAC_CONST(0.20230659607115639),
    FRAC_CONST(0.20390873679921437),    FRAC_CONST(0.20551033160221882),   FRAC_CONST(0.20711137619221856),   FRAC_CONST(0.2087118662827353),    FRAC_CONST(0.21031179758877552),
    FRAC_CONST(0.21191116582684155),    FRAC_CONST(0.21350996671494335),   FRAC_CONST(0.21510819597260972),   FRAC_CONST(0.21670584932089998),   FRAC_CONST(0.2183029224824154),
    FRAC_CONST(0.21989941118131037),    FRAC_CONST(0.22149531114330431),   FRAC_CONST(0.22309061809569264),   FRAC_CONST(0.22468532776735861),   FRAC_CONST(0.22627943588878449),
    FRAC_CONST(0.22787293819206314),    FRAC_CONST(0.22946583041090929),   FRAC_CONST(0.23105810828067114),   FRAC_CONST(0.23264976753834157),   FRAC_CONST(0.23424080392256985),
    FRAC_CONST(0.2358312131736727),     FRAC_CONST(0.23742099103364595),   FRAC_CONST(0.23901013324617584),   FRAC_CONST(0.24059863555665045),   FRAC_CONST(0.24218649371217096),
    FRAC_CONST(0.24377370346156332),    FRAC_CONST(0.24536026055538934),   FRAC_CONST(0.24694616074595824),   FRAC_CONST(0.24853139978733788),   FRAC_CONST(0.25011597343536629),
    FRAC_CONST(0.25169987744766298),    FRAC_CONST(0.25328310758364025),   FRAC_CONST(0.25486565960451457),   FRAC_CONST(0.25644752927331788),   FRAC_CONST(0.25802871235490898),
    FRAC_CONST(0.25960920461598508),    FRAC_CONST(0.26118900182509258),   FRAC_CONST(0.26276809975263904),   FRAC_CONST(0.264346494170904),     FRAC_CONST(0.26592418085405067),
    FRAC_CONST(0.26750115557813692),    FRAC_CONST(0.2690774141211269),    FRAC_CONST(0.27065295226290209),   FRAC_CONST(0.2722277657852728),    FRAC_CONST(0.27380185047198918),
    FRAC_CONST(0.27537520210875299),    FRAC_CONST(0.2769478164832283),    FRAC_CONST(0.27851968938505312),   FRAC_CONST(0.28009081660585067),   FRAC_CONST(0.28166119393924061),
    FRAC_CONST(0.28323081718085019),    FRAC_CONST(0.28479968212832563),   FRAC_CONST(0.28636778458134327),   FRAC_CONST(0.28793512034162105),   FRAC_CONST(0.2895016852129294),
    FRAC_CONST(0.29106747500110264),    FRAC_CONST(0.29263248551405047),   FRAC_CONST(0.2941967125617686),    FRAC_CONST(0.29576015195635058),   FRAC_CONST(0.29732279951199847),
    FRAC_CONST(0.29888465104503475),    FRAC_CONST(0.30044570237391266),   FRAC_CONST(0.30200594931922808),   FRAC_CONST(0.30356538770373032),   FRAC_CONST(0.30512401335233358),
    FRAC_CONST(0.30668182209212791),    FRAC_CONST(0.3082388097523906),    FRAC_CONST(0.30979497216459695),   FRAC_CONST(0.31135030516243201),   FRAC_CONST(0.3129048045818012),
    FRAC_CONST(0.31445846626084178),    FRAC_CONST(0.31601128603993378),   FRAC_CONST(0.31756325976171151),   FRAC_CONST(0.31911438327107416),   FRAC_CONST(0.32066465241519732),
    FRAC_CONST(0.32221406304354389),    FRAC_CONST(0.3237626110078754),    FRAC_CONST(0.32531029216226293),   FRAC_CONST(0.32685710236309828),   FRAC_CONST(0.32840303746910487),
    FRAC_CONST(0.32994809334134939),    FRAC_CONST(0.3314922658432522),    FRAC_CONST(0.33303555084059877),   FRAC_CONST(0.33457794420155085),   FRAC_CONST(0.33611944179665709),
    FRAC_CONST(0.33766003949886464),    FRAC_CONST(0.33919973318352969),   FRAC_CONST(0.34073851872842903),   FRAC_CONST(0.34227639201377064),   FRAC_CONST(0.34381334892220483),
    FRAC_CONST(0.34534938533883547),    FRAC_CONST(0.34688449715123082),   FRAC_CONST(0.34841868024943456),   FRAC_CONST(0.34995193052597684),   FRAC_CONST(0.35148424387588523),
    FRAC_CONST(0.3530156161966958),     FRAC_CONST(0.35454604338846402),   FRAC_CONST(0.35607552135377557),   FRAC_CONST(0.35760404599775775),   FRAC_CONST(0.35913161322809023),
    FRAC_CONST(0.36065821895501554),    FRAC_CONST(0.36218385909135092),   FRAC_CONST(0.36370852955249849),   FRAC_CONST(0.36523222625645668),   FRAC_CONST(0.36675494512383078),
    FRAC_CONST(0.36827668207784414),    FRAC_CONST(0.36979743304434909),   FRAC_CONST(0.37131719395183754),   FRAC_CONST(0.37283596073145214),   FRAC_CONST(0.37435372931699717),
    FRAC_CONST(0.37587049564494951),    FRAC_CONST(0.37738625565446909),   FRAC_CONST(0.37890100528741022),   FRAC_CONST(0.38041474048833229),   FRAC_CONST(0.38192745720451066),
    FRAC_CONST(0.38343915138594736),    FRAC_CONST(0.38494981898538222),   FRAC_CONST(0.38645945595830333),   FRAC_CONST(0.38796805826295838),   FRAC_CONST(0.38947562186036483),
    FRAC_CONST(0.39098214271432141),    FRAC_CONST(0.39248761679141814),   FRAC_CONST(0.3939920400610481),    FRAC_CONST(0.39549540849541737),   FRAC_CONST(0.39699771806955625),
    FRAC_CONST(0.39849896476132979),    FRAC_CONST(0.39999914455144892),   FRAC_CONST(0.40149825342348083),   FRAC_CONST(0.4029962873638599),    FRAC_CONST(0.40449324236189854),
    FRAC_CONST(0.40598911440979762),    FRAC_CONST(0.40748389950265762),   FRAC_CONST(0.40897759363848879),   FRAC_CONST(0.41047019281822261),   FRAC_CONST(0.41196169304572178),
    FRAC_CONST(0.4134520903277914),     FRAC_CONST(0.41494138067418929),   FRAC_CONST(0.41642956009763715),   FRAC_CONST(0.41791662461383078),   FRAC_CONST(0.41940257024145089),
    FRAC_CONST(0.42088739300217382),    FRAC_CONST(0.42237108892068231),   FRAC_CONST(0.42385365402467584),   FRAC_CONST(0.42533508434488143),   FRAC_CONST(0.42681537591506419),
    FRAC_CONST(0.42829452477203828),    FRAC_CONST(0.42977252695567697),   FRAC_CONST(0.43124937850892364),   FRAC_CONST(0.4327250754778022),    FRAC_CONST(0.43419961391142781),
    FRAC_CONST(0.43567298986201736),    FRAC_CONST(0.43714519938489987),   FRAC_CONST(0.43861623853852766),   FRAC_CONST(0.44008610338448595),   FRAC_CONST(0.44155478998750436),
    FRAC_CONST(0.44302229441546676),    FRAC_CONST(0.4444886127394222),    FRAC_CONST(0.44595374103359531),   FRAC_CONST(0.44741767537539667),   FRAC_CONST(0.44888041184543348),
    FRAC_CONST(0.45034194652752002),    FRAC_CONST(0.45180227550868812),   FRAC_CONST(0.45326139487919759),   FRAC_CONST(0.45471930073254679),   FRAC_CONST(0.45617598916548296),
    FRAC_CONST(0.45763145627801283),    FRAC_CONST(0.45908569817341294),   FRAC_CONST(0.46053871095824001),   FRAC_CONST(0.46199049074234161),   FRAC_CONST(0.46344103363886635),
    FRAC_CONST(0.46489033576427435),    FRAC_CONST(0.46633839323834758),   FRAC_CONST(0.46778520218420055),   FRAC_CONST(0.46923075872829029),   FRAC_CONST(0.47067505900042683),
    FRAC_CONST(0.47211809913378361),    FRAC_CONST(0.47355987526490806),   FRAC_CONST(0.47500038353373153),   FRAC_CONST(0.47643962008357982),   FRAC_CONST(0.47787758106118372),
    FRAC_CONST(0.47931426261668875),    FRAC_CONST(0.48074966090366611),   FRAC_CONST(0.48218377207912272),   FRAC_CONST(0.48361659230351117),   FRAC_CONST(0.48504811774074069),
    FRAC_CONST(0.48647834455818684),    FRAC_CONST(0.48790726892670194),   FRAC_CONST(0.48933488702062544),   FRAC_CONST(0.49076119501779414),   FRAC_CONST(0.49218618909955225),
    FRAC_CONST(0.4936098654507618),     FRAC_CONST(0.49503222025981269),   FRAC_CONST(0.49645324971863303),   FRAC_CONST(0.49787295002269943),   FRAC_CONST(0.49929131737104687),
    FRAC_CONST(0.50070834796627917),    FRAC_CONST(0.50212403801457872),   FRAC_CONST(0.50353838372571758),   FRAC_CONST(0.50495138131306638),   FRAC_CONST(0.50636302699360547),
    FRAC_CONST(0.50777331698793449),    FRAC_CONST(0.50918224752028263),   FRAC_CONST(0.51058981481851906),   FRAC_CONST(0.51199601511416237),   FRAC_CONST(0.51340084464239111),
    FRAC_CONST(0.51480429964205421),    FRAC_CONST(0.51620637635567967),   FRAC_CONST(0.51760707102948678),   FRAC_CONST(0.51900637991339404),   FRAC_CONST(0.5204042992610306),
    FRAC_CONST(0.52180082532974559),    FRAC_CONST(0.5231959543806185),    FRAC_CONST(0.52458968267846895),   FRAC_CONST(0.52598200649186677),   FRAC_CONST(0.52737292209314235),
    FRAC_CONST(0.52876242575839572),    FRAC_CONST(0.53015051376750777),   FRAC_CONST(0.53153718240414882),   FRAC_CONST(0.53292242795578992),   FRAC_CONST(0.53430624671371152),
    FRAC_CONST(0.53568863497301467),    FRAC_CONST(0.5370695890326298),    FRAC_CONST(0.5384491051953274),    FRAC_CONST(0.53982717976772743),   FRAC_CONST(0.54120380906030963),
    FRAC_CONST(0.54257898938742311),    FRAC_CONST(0.54395271706729609),   FRAC_CONST(0.54532498842204646),   FRAC_CONST(0.54669579977769045),   FRAC_CONST(0.54806514746415402),
    FRAC_CONST(0.54943302781528081),    FRAC_CONST(0.55079943716884383),   FRAC_CONST(0.55216437186655387),   FRAC_CONST(0.55352782825406999),   FRAC_CONST(0.55488980268100907),
    FRAC_CONST(0.55625029150095584),    FRAC_CONST(0.55760929107147217),   FRAC_CONST(0.55896679775410718),   FRAC_CONST(0.56032280791440714),   FRAC_CONST(0.56167731792192455),
    FRAC_CONST(0.56303032415022869),    FRAC_CONST(0.56438182297691453),   FRAC_CONST(0.56573181078361312),   FRAC_CONST(0.56708028395600085),   FRAC_CONST(0.56842723888380908),
    FRAC_CONST(0.56977267196083425),    FRAC_CONST(0.57111657958494688),   FRAC_CONST(0.5724589581581021),    FRAC_CONST(0.57379980408634845),   FRAC_CONST(0.57513911377983773),
    FRAC_CONST(0.57647688365283478),    FRAC_CONST(0.57781311012372738),   FRAC_CONST(0.57914778961503466),   FRAC_CONST(0.58048091855341843),   FRAC_CONST(0.5818124933696911),
    FRAC_CONST(0.58314251049882604),    FRAC_CONST(0.58447096637996743),   FRAC_CONST(0.58579785745643886),   FRAC_CONST(0.5871231801757536),    FRAC_CONST(0.58844693098962408),
    FRAC_CONST(0.58976910635397084),    FRAC_CONST(0.59108970272893235),   FRAC_CONST(0.59240871657887517),   FRAC_CONST(0.59372614437240179),   FRAC_CONST(0.59504198258236196),
    FRAC_CONST(0.5963562276858605),     FRAC_CONST(0.59766887616426767),   FRAC_CONST(0.5989799245032289),    FRAC_CONST(0.60028936919267273),   FRAC_CONST(0.60159720672682204),
    FRAC_CONST(0.60290343360420195),    FRAC_CONST(0.60420804632765002),   FRAC_CONST(0.60551104140432543),   FRAC_CONST(0.60681241534571839),   FRAC_CONST(0.60811216466765883),
    FRAC_CONST(0.60941028589032709),    FRAC_CONST(0.61070677553826169),   FRAC_CONST(0.61200163014036979),   FRAC_CONST(0.61329484622993602),   FRAC_CONST(0.6145864203446314),
    FRAC_CONST(0.61587634902652377),    FRAC_CONST(0.61716462882208556),   FRAC_CONST(0.61845125628220421),   FRAC_CONST(0.61973622796219074),   FRAC_CONST(0.6210195404217892),
    FRAC_CONST(0.62230119022518593),    FRAC_CONST(0.62358117394101897),   FRAC_CONST(0.62485948814238634),   FRAC_CONST(0.62613612940685637),   FRAC_CONST(0.62741109431647646),
    FRAC_CONST(0.62868437945778133),    FRAC_CONST(0.62995598142180387),   FRAC_CONST(0.6312258968040827),    FRAC_CONST(0.63249412220467238),   FRAC_CONST(0.63376065422815175),
    FRAC_CONST(0.63502548948363347),    FRAC_CONST(0.63628862458477287),   FRAC_CONST(0.63755005614977711),   FRAC_CONST(0.63880978080141437),   FRAC_CONST(0.6400677951670225),
    FRAC_CONST(0.6413240958785188),     FRAC_CONST(0.64257867957240766),   FRAC_CONST(0.6438315428897915),    FRAC_CONST(0.64508268247637779),   FRAC_CONST(0.64633209498248945),
    FRAC_CONST(0.64757977706307335),    FRAC_CONST(0.64882572537770888),   FRAC_CONST(0.65006993659061751),   FRAC_CONST(0.65131240737067142),   FRAC_CONST(0.65255313439140239),
    FRAC_CONST(0.65379211433101081),    FRAC_CONST(0.65502934387237444),   FRAC_CONST(0.6562648197030575),    FRAC_CONST(0.65749853851531959),   FRAC_CONST(0.65873049700612374),
    FRAC_CONST(0.65996069187714679),    FRAC_CONST(0.66118911983478657),   FRAC_CONST(0.66241577759017178),   FRAC_CONST(0.66364066185917048),   FRAC_CONST(0.66486376936239888),
    FRAC_CONST(0.66608509682523009),    FRAC_CONST(0.66730464097780284),   FRAC_CONST(0.66852239855503071),   FRAC_CONST(0.66973836629660977),   FRAC_CONST(0.67095254094702894),
    FRAC_CONST(0.67216491925557675),    FRAC_CONST(0.67337549797635199),   FRAC_CONST(0.67458427386827102),   FRAC_CONST(0.67579124369507693),   FRAC_CONST(0.67699640422534846),
    FRAC_CONST(0.67819975223250772),    FRAC_CONST(0.6794012844948305),    FRAC_CONST(0.68060099779545302),   FRAC_CONST(0.68179888892238183),   FRAC_CONST(0.6829949546685018),
    FRAC_CONST(0.68418919183158522),    FRAC_CONST(0.68538159721429948),   FRAC_CONST(0.6865721676242168),    FRAC_CONST(0.68776089987382172),   FRAC_CONST(0.68894779078052026),
    FRAC_CONST(0.69013283716664853),    FRAC_CONST(0.69131603585948032),   FRAC_CONST(0.69249738369123692),   FRAC_CONST(0.69367687749909468),   FRAC_CONST(0.69485451412519361),
    FRAC_CONST(0.69603029041664599),    FRAC_CONST(0.6972042032255451),    FRAC_CONST(0.6983762494089728),    FRAC_CONST(0.69954642582900894),   FRAC_CONST(0.70071472935273893),
    FRAC_CONST(0.70188115685226271),    FRAC_CONST(0.703045705204703),     FRAC_CONST(0.70420837129221303),   FRAC_CONST(0.70536915200198613),   FRAC_CONST(0.70652804422626281),
    FRAC_CONST(0.70768504486233985),    FRAC_CONST(0.70884015081257845),   FRAC_CONST(0.70999335898441229),   FRAC_CONST(0.711144666290356),     FRAC_CONST(0.71229406964801356),
    FRAC_CONST(0.71344156598008623),    FRAC_CONST(0.71458715221438096),   FRAC_CONST(0.71573082528381871),   FRAC_CONST(0.71687258212644234),   FRAC_CONST(0.7180124196854254),
    FRAC_CONST(0.71915033490907943),    FRAC_CONST(0.72028632475086318),   FRAC_CONST(0.72142038616938997),   FRAC_CONST(0.72255251612843596),   FRAC_CONST(0.72368271159694852),
    FRAC_CONST(0.72481096954905444),    FRAC_CONST(0.72593728696406756),   FRAC_CONST(0.72706166082649704),   FRAC_CONST(0.72818408812605595),   FRAC_CONST(0.72930456585766834),
    FRAC_CONST(0.73042309102147851),    FRAC_CONST(0.73153966062285747),   FRAC_CONST(0.73265427167241282),   FRAC_CONST(0.73376692118599507),   FRAC_CONST(0.73487760618470677),
    FRAC_CONST(0.73598632369490979),    FRAC_CONST(0.73709307074823405),   FRAC_CONST(0.73819784438158409),   FRAC_CONST(0.73930064163714881),   FRAC_CONST(0.74040145956240788),
    FRAC_CONST(0.74150029521014049),    FRAC_CONST(0.74259714563843304),   FRAC_CONST(0.74369200791068657),   FRAC_CONST(0.74478487909562552),   FRAC_CONST(0.74587575626730485),
    FRAC_CONST(0.74696463650511791),    FRAC_CONST(0.74805151689380456),   FRAC_CONST(0.74913639452345926),   FRAC_CONST(0.75021926648953785),   FRAC_CONST(0.75130012989286621),
    FRAC_CONST(0.7523789818396478),     FRAC_CONST(0.75345581944147111),   FRAC_CONST(0.75453063981531809),   FRAC_CONST(0.75560344008357094),   FRAC_CONST(0.75667421737402052),
    FRAC_CONST(0.7577429688198738),     FRAC_CONST(0.75880969155976163),   FRAC_CONST(0.75987438273774599),   FRAC_CONST(0.76093703950332836),   FRAC_CONST(0.76199765901145666),
    FRAC_CONST(0.76305623842253345),    FRAC_CONST(0.76411277490242291),   FRAC_CONST(0.76516726562245885),   FRAC_CONST(0.76621970775945258),   FRAC_CONST(0.76727009849569949),
    FRAC_CONST(0.76831843501898767),    FRAC_CONST(0.76936471452260458),   FRAC_CONST(0.77040893420534517),   FRAC_CONST(0.77145109127151923),   FRAC_CONST(0.77249118293095853),
    FRAC_CONST(0.77352920639902467),    FRAC_CONST(0.77456515889661659),   FRAC_CONST(0.77559903765017746),   FRAC_CONST(0.7766308398917029),    FRAC_CONST(0.77766056285874774),
    FRAC_CONST(0.77868820379443371),    FRAC_CONST(0.77971375994745684),   FRAC_CONST(0.78073722857209438),   FRAC_CONST(0.7817586069282132),    FRAC_CONST(0.78277789228127592),
    FRAC_CONST(0.78379508190234881),    FRAC_CONST(0.78481017306810918),   FRAC_CONST(0.78582316306085265),   FRAC_CONST(0.78683404916849986),   FRAC_CONST(0.78784282868460476),
    FRAC_CONST(0.78884949890836087),    FRAC_CONST(0.78985405714460888),   FRAC_CONST(0.7908565007038445),    FRAC_CONST(0.79185682690222425),   FRAC_CONST(0.79285503306157412),
    FRAC_CONST(0.79385111650939566),    FRAC_CONST(0.79484507457887377),   FRAC_CONST(0.79583690460888357),   FRAC_CONST(0.79682660394399751),   FRAC_CONST(0.79781416993449272),
    FRAC_CONST(0.79879959993635785),    FRAC_CONST(0.7997828913113002),    FRAC_CONST(0.80076404142675273),   FRAC_CONST(0.80174304765588156),   FRAC_CONST(0.80271990737759213),
    FRAC_CONST(0.80369461797653707),    FRAC_CONST(0.80466717684312306),   FRAC_CONST(0.80563758137351682),   FRAC_CONST(0.80660582896965372),   FRAC_CONST(0.80757191703924336),
    FRAC_CONST(0.80853584299577752),    FRAC_CONST(0.80949760425853612),   FRAC_CONST(0.81045719825259477),   FRAC_CONST(0.81141462240883167),   FRAC_CONST(0.81236987416393436),
    FRAC_CONST(0.81332295096040608),    FRAC_CONST(0.81427385024657373),   FRAC_CONST(0.81522256947659355),   FRAC_CONST(0.81616910611045879),   FRAC_CONST(0.817113457614006),
    FRAC_CONST(0.81805562145892186),    FRAC_CONST(0.81899559512275044),   FRAC_CONST(0.81993337608889916),   FRAC_CONST(0.82086896184664637),   FRAC_CONST(0.8218023498911472),
    FRAC_CONST(0.82273353772344116),    FRAC_CONST(0.82366252285045805),   FRAC_CONST(0.82458930278502529),   FRAC_CONST(0.82551387504587381),   FRAC_CONST(0.82643623715764558),
    FRAC_CONST(0.82735638665089983),    FRAC_CONST(0.82827432106211907),   FRAC_CONST(0.82919003793371693),   FRAC_CONST(0.83010353481404364),   FRAC_CONST(0.83101480925739324),
    FRAC_CONST(0.83192385882400965),    FRAC_CONST(0.83283068108009373),   FRAC_CONST(0.8337352735978093),    FRAC_CONST(0.83463763395529011),   FRAC_CONST(0.83553775973664579),
    FRAC_CONST(0.83643564853196872),    FRAC_CONST(0.83733129793734051),   FRAC_CONST(0.83822470555483797),   FRAC_CONST(0.83911586899254031),   FRAC_CONST(0.84000478586453453),
    FRAC_CONST(0.84089145379092289),    FRAC_CONST(0.84177587039782842),   FRAC_CONST(0.84265803331740163),   FRAC_CONST(0.84353794018782702),   FRAC_CONST(0.844415588653329),
    FRAC_CONST(0.8452909763641786),     FRAC_CONST(0.84616410097669936),   FRAC_CONST(0.84703496015327406),   FRAC_CONST(0.84790355156235053),   FRAC_CONST(0.84876987287844818),
    FRAC_CONST(0.8496339217821639),     FRAC_CONST(0.85049569596017938),   FRAC_CONST(0.85135519310526508),   FRAC_CONST(0.85221241091628896),   FRAC_CONST(0.85306734709822085),
    FRAC_CONST(0.85391999936213903),    FRAC_CONST(0.85477036542523732),   FRAC_CONST(0.85561844301082923),   FRAC_CONST(0.85646422984835635),   FRAC_CONST(0.85730772367339259),
    FRAC_CONST(0.85814892222765116),    FRAC_CONST(0.85898782325899026),   FRAC_CONST(0.85982442452141961),   FRAC_CONST(0.86065872377510555),   FRAC_CONST(0.86149071878637817),
    FRAC_CONST(0.8623204073277364),     FRAC_CONST(0.86314778717785412),   FRAC_CONST(0.8639728561215867),    FRAC_CONST(0.86479561194997623),   FRAC_CONST(0.86561605246025763),
    FRAC_CONST(0.86643417545586487),    FRAC_CONST(0.8672499787464365),    FRAC_CONST(0.86806346014782154),   FRAC_CONST(0.8688746174820855),    FRAC_CONST(0.86968344857751589),
    FRAC_CONST(0.87048995126862883),    FRAC_CONST(0.87129412339617363),   FRAC_CONST(0.87209596280713941),   FRAC_CONST(0.8728954673547612),    FRAC_CONST(0.87369263489852422),
    FRAC_CONST(0.87448746330417149),    FRAC_CONST(0.87527995044370765),   FRAC_CONST(0.8760700941954066),    FRAC_CONST(0.87685789244381551),   FRAC_CONST(0.87764334307976144),
    FRAC_CONST(0.87842644400035663),    FRAC_CONST(0.8792071931090043),    FRAC_CONST(0.87998558831540408),   FRAC_CONST(0.88076162753555787),   FRAC_CONST(0.88153530869177488),
    FRAC_CONST(0.88230662971267804),    FRAC_CONST(0.88307558853320878),   FRAC_CONST(0.88384218309463292),   FRAC_CONST(0.8846064113445461),    FRAC_CONST(0.88536827123687933),
    FRAC_CONST(0.88612776073190425),    FRAC_CONST(0.88688487779623937),   FRAC_CONST(0.88763962040285393),   FRAC_CONST(0.8883919865310751),    FRAC_CONST(0.88914197416659235),
    FRAC_CONST(0.88988958130146301),    FRAC_CONST(0.8906348059341177),    FRAC_CONST(0.89137764606936609),   FRAC_CONST(0.89211809971840139),   FRAC_CONST(0.89285616489880615),
    FRAC_CONST(0.89359183963455813),    FRAC_CONST(0.89432512195603453),   FRAC_CONST(0.89505600990001799),   FRAC_CONST(0.89578450150970124),   FRAC_CONST(0.8965105948346932),
    FRAC_CONST(0.89723428793102367),    FRAC_CONST(0.89795557886114807),   FRAC_CONST(0.89867446569395382),   FRAC_CONST(0.89939094650476448),   FRAC_CONST(0.90010501937534515),
    FRAC_CONST(0.900816682393908),      FRAC_CONST(0.90152593365511691),   FRAC_CONST(0.90223277126009283),   FRAC_CONST(0.90293719331641886),   FRAC_CONST(0.90363919793814496),
    FRAC_CONST(0.90433878324579353),    FRAC_CONST(0.90503594736636439),   FRAC_CONST(0.90573068843333915),   FRAC_CONST(0.90642300458668679),   FRAC_CONST(0.90711289397286898),
    FRAC_CONST(0.90780035474484411),    FRAC_CONST(0.90848538506207266),   FRAC_CONST(0.90916798309052227),   FRAC_CONST(0.90984814700267291),   FRAC_CONST(0.9105258749775208),
    FRAC_CONST(0.91120116520058425),    FRAC_CONST(0.91187401586390815),   FRAC_CONST(0.91254442516606893),   FRAC_CONST(0.9132123913121788),    FRAC_CONST(0.91387791251389161),
    FRAC_CONST(0.91454098698940678),    FRAC_CONST(0.91520161296347435),   FRAC_CONST(0.91585978866739981),   FRAC_CONST(0.91651551233904871),   FRAC_CONST(0.91716878222285148),
    FRAC_CONST(0.91781959656980805),    FRAC_CONST(0.91846795363749245),   FRAC_CONST(0.91911385169005766),   FRAC_CONST(0.9197572889982405),    FRAC_CONST(0.9203982638393654),
    FRAC_CONST(0.92103677449734989),    FRAC_CONST(0.92167281926270861),   FRAC_CONST(0.92230639643255874),   FRAC_CONST(0.92293750431062316),   FRAC_CONST(0.92356614120723612),
    FRAC_CONST(0.92419230543934783),    FRAC_CONST(0.92481599533052783),   FRAC_CONST(0.92543720921097061),   FRAC_CONST(0.92605594541749991),   FRAC_CONST(0.92667220229357261),
    FRAC_CONST(0.92728597818928349),    FRAC_CONST(0.9278972714613698),    FRAC_CONST(0.92850608047321548),   FRAC_CONST(0.9291124035948557),    FRAC_CONST(0.92971623920298097),
    FRAC_CONST(0.93031758568094147),    FRAC_CONST(0.93091644141875196),   FRAC_CONST(0.93151280481309506),   FRAC_CONST(0.93210667426732674),   FRAC_CONST(0.93269804819147983),
    FRAC_CONST(0.93328692500226818),    FRAC_CONST(0.93387330312309147),   FRAC_CONST(0.93445718098403896),   FRAC_CONST(0.93503855702189376),   FRAC_CONST(0.9356174296801375),
    FRAC_CONST(0.93619379740895381),    FRAC_CONST(0.93676765866523259),   FRAC_CONST(0.93733901191257496),   FRAC_CONST(0.93790785562129597),   FRAC_CONST(0.93847418826842988),
    FRAC_CONST(0.93903800833773399),    FRAC_CONST(0.93959931431969212),   FRAC_CONST(0.94015810471151917),   FRAC_CONST(0.94071437801716529),   FRAC_CONST(0.94126813274731924),
    FRAC_CONST(0.94181936741941319),    FRAC_CONST(0.94236808055762578),   FRAC_CONST(0.94291427069288691),   FRAC_CONST(0.94345793636288133),   FRAC_CONST(0.94399907611205225),
    FRAC_CONST(0.9445376884916058),     FRAC_CONST(0.94507377205951448),   FRAC_CONST(0.94560732538052128),   FRAC_CONST(0.94613834702614352),   FRAC_CONST(0.94666683557467624),
    FRAC_CONST(0.94719278961119657),    FRAC_CONST(0.94771620772756759),   FRAC_CONST(0.94823708852244104),   FRAC_CONST(0.94875543060126255),   FRAC_CONST(0.94927123257627433),
    FRAC_CONST(0.94978449306651924),    FRAC_CONST(0.95029521069784428),   FRAC_CONST(0.9508033841029051),    FRAC_CONST(0.95130901192116835),   FRAC_CONST(0.9518120927989161),
    FRAC_CONST(0.95231262538924943),    FRAC_CONST(0.95281060835209208),   FRAC_CONST(0.95330604035419386),   FRAC_CONST(0.95379892006913403),   FRAC_CONST(0.95428924617732525),
    FRAC_CONST(0.95477701736601728),    FRAC_CONST(0.95526223232929941),   FRAC_CONST(0.95574488976810545),   FRAC_CONST(0.95622498839021619),   FRAC_CONST(0.95670252691026292),
    FRAC_CONST(0.95717750404973156),    FRAC_CONST(0.95764991853696524),   FRAC_CONST(0.95811976910716812),   FRAC_CONST(0.95858705450240911),   FRAC_CONST(0.95905177347162429),
    FRAC_CONST(0.95951392477062125),    FRAC_CONST(0.95997350716208196),   FRAC_CONST(0.96043051941556579),   FRAC_CONST(0.96088496030751369),   FRAC_CONST(0.96133682862125036),
    FRAC_CONST(0.96178612314698864),    FRAC_CONST(0.96223284268183173),   FRAC_CONST(0.9626769860297768),    FRAC_CONST(0.96311855200171881),   FRAC_CONST(0.96355753941545252),
    FRAC_CONST(0.96399394709567654),    FRAC_CONST(0.96442777387399625),   FRAC_CONST(0.96485901858892686),   FRAC_CONST(0.96528768008589627),   FRAC_CONST(0.96571375721724895),
    FRAC_CONST(0.96613724884224783),    FRAC_CONST(0.96655815382707866),   FRAC_CONST(0.96697647104485207),   FRAC_CONST(0.96739219937560694),   FRAC_CONST(0.96780533770631338),
    FRAC_CONST(0.96821588493087585),    FRAC_CONST(0.9686238399501359),    FRAC_CONST(0.96902920167187501),   FRAC_CONST(0.96943196901081796),   FRAC_CONST(0.96983214088863534),
    FRAC_CONST(0.9702297162339466),     FRAC_CONST(0.97062469398232287),   FRAC_CONST(0.97101707307629004),   FRAC_CONST(0.97140685246533098),   FRAC_CONST(0.97179403110588902),
    FRAC_CONST(0.97217860796137046),    FRAC_CONST(0.97256058200214734),   FRAC_CONST(0.97293995220556007),   FRAC_CONST(0.97331671755592064),   FRAC_CONST(0.97369087704451474),
    FRAC_CONST(0.97406242966960455),    FRAC_CONST(0.97443137443643235),   FRAC_CONST(0.97479771035722163),   FRAC_CONST(0.97516143645118103),   FRAC_CONST(0.97552255174450631),
    FRAC_CONST(0.97588105527038305),    FRAC_CONST(0.97623694606898959),   FRAC_CONST(0.97659022318749911),   FRAC_CONST(0.97694088568008242),   FRAC_CONST(0.97728893260791039),
    FRAC_CONST(0.97763436303915685),    FRAC_CONST(0.97797717604900047),   FRAC_CONST(0.97831737071962765),   FRAC_CONST(0.97865494614023485),   FRAC_CONST(0.97898990140703124),
    FRAC_CONST(0.97932223562324061),    FRAC_CONST(0.97965194789910426),   FRAC_CONST(0.9799790373518833),    FRAC_CONST(0.98030350310586067),   FRAC_CONST(0.98062534429234405),
    FRAC_CONST(0.98094456004966768),    FRAC_CONST(0.98126114952319499),   FRAC_CONST(0.98157511186532054),   FRAC_CONST(0.98188644623547261),   FRAC_CONST(0.98219515180011563),
    FRAC_CONST(0.98250122773275184),    FRAC_CONST(0.98280467321392362),   FRAC_CONST(0.98310548743121629),   FRAC_CONST(0.98340366957925973),   FRAC_CONST(0.98369921885973044),
    FRAC_CONST(0.98399213448135414),    FRAC_CONST(0.98428241565990748),   FRAC_CONST(0.98457006161822058),   FRAC_CONST(0.98485507158617835),   FRAC_CONST(0.98513744480072363),
    FRAC_CONST(0.98541718050585803),    FRAC_CONST(0.98569427795264519),   FRAC_CONST(0.98596873639921168),   FRAC_CONST(0.98624055511074971),   FRAC_CONST(0.98650973335951875),
    FRAC_CONST(0.98677627042484772),    FRAC_CONST(0.98704016559313645),   FRAC_CONST(0.98730141815785832),   FRAC_CONST(0.98756002741956173),   FRAC_CONST(0.9878159926858715),
    FRAC_CONST(0.98806931327149194),    FRAC_CONST(0.98831998849820735),   FRAC_CONST(0.98856801769488489),   FRAC_CONST(0.98881340019747566),   FRAC_CONST(0.98905613534901682),
    FRAC_CONST(0.98929622249963345),    FRAC_CONST(0.98953366100653983),   FRAC_CONST(0.98976845023404181),   FRAC_CONST(0.99000058955353776),   FRAC_CONST(0.99023007834352106),
    FRAC_CONST(0.99045691598958097),    FRAC_CONST(0.99068110188440506),   FRAC_CONST(0.99090263542778001),   FRAC_CONST(0.99112151602659404),   FRAC_CONST(0.99133774309483769),
    FRAC_CONST(0.99155131605360625),    FRAC_CONST(0.99176223433110056),   FRAC_CONST(0.99197049736262888),   FRAC_CONST(0.99217610459060845),   FRAC_CONST(0.99237905546456673),
    FRAC_CONST(0.99257934944114334),    FRAC_CONST(0.99277698598409092),   FRAC_CONST(0.99297196456427694),   FRAC_CONST(0.99316428465968509),   FRAC_CONST(0.99335394575541669),
    FRAC_CONST(0.99354094734369169),    FRAC_CONST(0.99372528892385081),   FRAC_CONST(0.99390697000235606),   FRAC_CONST(0.99408599009279242),   FRAC_CONST(0.99426234871586938),
    FRAC_CONST(0.99443604539942176),    FRAC_CONST(0.99460707967841133),   FRAC_CONST(0.99477545109492771),   FRAC_CONST(0.99494115919819004),   FRAC_CONST(0.99510420354454787),
    FRAC_CONST(0.99526458369748239),    FRAC_CONST(0.99542229922760772),   FRAC_CONST(0.99557734971267187),   FRAC_CONST(0.9957297347375581),    FRAC_CONST(0.99587945389428578),
    FRAC_CONST(0.99602650678201154),    FRAC_CONST(0.99617089300703077),   FRAC_CONST(0.996312612182778),     FRAC_CONST(0.99645166392982831),   FRAC_CONST(0.99658804787589839),
    FRAC_CONST(0.99672176365584741),    FRAC_CONST(0.99685281091167788),   FRAC_CONST(0.99698118929253687),   FRAC_CONST(0.99710689845471678),   FRAC_CONST(0.99722993806165661),
    FRAC_CONST(0.99735030778394196),    FRAC_CONST(0.99746800729930707),   FRAC_CONST(0.99758303629263489),   FRAC_CONST(0.99769539445595812),   FRAC_CONST(0.99780508148846014),
    FRAC_CONST(0.99791209709647588),    FRAC_CONST(0.99801644099349218),   FRAC_CONST(0.99811811290014918),   FRAC_CONST(0.9982171125442405),    FRAC_CONST(0.9983134396607144),
    FRAC_CONST(0.99840709399167404),    FRAC_CONST(0.99849807528637868),   FRAC_CONST(0.99858638330124405),   FRAC_CONST(0.99867201779984294),   FRAC_CONST(0.99875497855290607),
    FRAC_CONST(0.99883526533832245),    FRAC_CONST(0.99891287794114036),   FRAC_CONST(0.99898781615356746),   FRAC_CONST(0.99906007977497147),   FRAC_CONST(0.99912966861188113),
    FRAC_CONST(0.99919658247798593),    FRAC_CONST(0.99926082119413751),   FRAC_CONST(0.99932238458834954),   FRAC_CONST(0.999381272495798),     FRAC_CONST(0.99943748475882255),
    FRAC_CONST(0.9994910212269259),     FRAC_CONST(0.99954188175677483),   FRAC_CONST(0.99959006621220048),   FRAC_CONST(0.99963557446419837),   FRAC_CONST(0.99967840639092931),
    FRAC_CONST(0.99971856187771946),    FRAC_CONST(0.99975604081706027),   FRAC_CONST(0.99979084310860955),   FRAC_CONST(0.99982296865919107),   FRAC_CONST(0.99985241738279484),
    FRAC_CONST(0.99987918920057806),    FRAC_CONST(0.99990328404086426),   FRAC_CONST(0.9999247018391445),    FRAC_CONST(0.99994344253807688),   FRAC_CONST(0.99995950608748674),
    FRAC_CONST(0.99997289244436727),    FRAC_CONST(0.99998360157287902),   FRAC_CONST(0.9999916334443506),    FRAC_CONST(0.99999698803727821),   FRAC_CONST(0.99999966533732598)};
#endif

 const int32_t sine_short_128[] = {
    FRAC_CONST(0.0061358846491544753), FRAC_CONST(0.01840672990580482),  FRAC_CONST(0.030674803176636626), FRAC_CONST(0.04293825693494082), FRAC_CONST(0.055195244349689934),
    FRAC_CONST(0.067443919563664051),  FRAC_CONST(0.079682437971430126), FRAC_CONST(0.091908956497132724), FRAC_CONST(0.10412163387205459), FRAC_CONST(0.11631863091190475),
    FRAC_CONST(0.12849811079379317),   FRAC_CONST(0.14065823933284921),  FRAC_CONST(0.15279718525844344),  FRAC_CONST(0.16491312048996989), FRAC_CONST(0.17700422041214875),
    FRAC_CONST(0.18906866414980619),   FRAC_CONST(0.2011046348420919),   FRAC_CONST(0.21311031991609136),  FRAC_CONST(0.22508391135979283), FRAC_CONST(0.2370236059943672),
    FRAC_CONST(0.24892760574572015),   FRAC_CONST(0.26079411791527551),  FRAC_CONST(0.27262135544994898),  FRAC_CONST(0.28440753721127188), FRAC_CONST(0.29615088824362379),
    FRAC_CONST(0.30784964004153487),   FRAC_CONST(0.31950203081601569),  FRAC_CONST(0.33110630575987643),  FRAC_CONST(0.34266071731199438), FRAC_CONST(0.35416352542049034),
    FRAC_CONST(0.36561299780477385),   FRAC_CONST(0.37700741021641826),  FRAC_CONST(0.38834504669882625),  FRAC_CONST(0.39962419984564679), FRAC_CONST(0.41084317105790391),
    FRAC_CONST(0.42200027079979968),   FRAC_CONST(0.43309381885315196),  FRAC_CONST(0.4441221445704292),   FRAC_CONST(0.45508358712634384), FRAC_CONST(0.46597649576796618),
    FRAC_CONST(0.47679923006332209),   FRAC_CONST(0.487550160148436),    FRAC_CONST(0.49822766697278187),  FRAC_CONST(0.50883014254310699), FRAC_CONST(0.51935599016558964),
    FRAC_CONST(0.52980362468629461),   FRAC_CONST(0.54017147272989285),  FRAC_CONST(0.55045797293660481),  FRAC_CONST(0.56066157619733603), FRAC_CONST(0.57078074588696726),
    FRAC_CONST(0.58081395809576453),   FRAC_CONST(0.59075970185887416),  FRAC_CONST(0.60061647938386897),  FRAC_CONST(0.61038280627630948), FRAC_CONST(0.6200572117632891),
    FRAC_CONST(0.62963823891492698),   FRAC_CONST(0.63912444486377573),  FRAC_CONST(0.64851440102211244),  FRAC_CONST(0.65780669329707864), FRAC_CONST(0.66699992230363747),
    FRAC_CONST(0.67609270357531592),   FRAC_CONST(0.68508366777270036),  FRAC_CONST(0.693971460889654),    FRAC_CONST(0.7027547444572253),  FRAC_CONST(0.71143219574521643),
    FRAC_CONST(0.72000250796138165),   FRAC_CONST(0.7284643904482252),   FRAC_CONST(0.73681656887736979),  FRAC_CONST(0.74505778544146595), FRAC_CONST(0.75318679904361241),
    FRAC_CONST(0.76120238548426178),   FRAC_CONST(0.76910333764557959),  FRAC_CONST(0.77688846567323244),  FRAC_CONST(0.78455659715557524), FRAC_CONST(0.79210657730021239),
    FRAC_CONST(0.79953726910790501),   FRAC_CONST(0.80684755354379922),  FRAC_CONST(0.8140363297059483),   FRAC_CONST(0.82110251499110465), FRAC_CONST(0.8280450452577558),
    FRAC_CONST(0.83486287498638001),   FRAC_CONST(0.84155497743689833),  FRAC_CONST(0.84812034480329712),  FRAC_CONST(0.85455798836540053), FRAC_CONST(0.86086693863776731),
    FRAC_CONST(0.86704624551569265),   FRAC_CONST(0.87309497841829009),  FRAC_CONST(0.87901222642863341),  FRAC_CONST(0.88479709843093779), FRAC_CONST(0.89044872324475788),
    FRAC_CONST(0.89596624975618511),   FRAC_CONST(0.90134884704602203),  FRAC_CONST(0.90659570451491533),  FRAC_CONST(0.91170603200542988), FRAC_CONST(0.9166790599210427),
    FRAC_CONST(0.9215140393420419),    FRAC_CONST(0.92621024213831127),  FRAC_CONST(0.93076696107898371),  FRAC_CONST(0.9351835099389475),  FRAC_CONST(0.93945922360218992),
    FRAC_CONST(0.94359345816196039),   FRAC_CONST(0.94758559101774109),  FRAC_CONST(0.95143502096900834),  FRAC_CONST(0.95514116830577067), FRAC_CONST(0.9587034748958716),
    FRAC_CONST(0.96212140426904158),   FRAC_CONST(0.9653944416976894),   FRAC_CONST(0.96852209427441727),  FRAC_CONST(0.97150389098625178), FRAC_CONST(0.97433938278557586),
    FRAC_CONST(0.97702814265775439),   FRAC_CONST(0.97956976568544052),  FRAC_CONST(0.98196386910955524),  FRAC_CONST(0.98421009238692903), FRAC_CONST(0.98630809724459867),
    FRAC_CONST(0.98825756773074946),   FRAC_CONST(0.99005821026229712),  FRAC_CONST(0.99170975366909953),  FRAC_CONST(0.9932119492347945),  FRAC_CONST(0.99456457073425542),
    FRAC_CONST(0.99576741446765982),   FRAC_CONST(0.99682029929116567),  FRAC_CONST(0.99772306664419164),  FRAC_CONST(0.99847558057329477), FRAC_CONST(0.99907772775264536),
    FRAC_CONST(0.99952941750109314),   FRAC_CONST(0.9998305817958234),   FRAC_CONST(0.99998117528260111)};

#ifdef ALLOW_SMALL_FRAMELENGTH
 const int32_t sine_short_120[] = {
    FRAC_CONST(0.0065449379673518581), FRAC_CONST(0.019633692460628301), FRAC_CONST(0.032719082821776137), FRAC_CONST(0.045798866936520771), FRAC_CONST(0.058870803651189033),
    FRAC_CONST(0.071932653156719387),  FRAC_CONST(0.084982177372441667), FRAC_CONST(0.09801714032956059),  FRAC_CONST(0.11103530855427769),  FRAC_CONST(0.12403445145048532),
    FRAC_CONST(0.13701234168196802),   FRAC_CONST(0.14996675555404498),  FRAC_CONST(0.16289547339458874),  FRAC_CONST(0.17579627993435451),  FRAC_CONST(0.18866696468655525),
    FRAC_CONST(0.2015053223256171),    FRAC_CONST(0.21430915306505074),  FRAC_CONST(0.2270762630343732),   FRAC_CONST(0.23980446465501654),  FRAC_CONST(0.25249157701515795),
    FRAC_CONST(0.26513542624340797),   FRAC_CONST(0.27773384588129219),  FRAC_CONST(0.29028467725446233),  FRAC_CONST(0.3027857698425746),   FRAC_CONST(0.31523498164776964),
    FRAC_CONST(0.32763017956169349),   FRAC_CONST(0.33996923973099424),  FRAC_CONST(0.35225004792123354),  FRAC_CONST(0.36447049987914965),  FRAC_CONST(0.37662850169321077),
    FRAC_CONST(0.38872197015239557),   FRAC_CONST(0.40074883310314097),  FRAC_CONST(0.41270702980439467),  FRAC_CONST(0.42459451128071307),  FRAC_CONST(0.43640924067334208),
    FRAC_CONST(0.44814919358922256),   FRAC_CONST(0.45981235844785984),  FRAC_CONST(0.47139673682599764),  FRAC_CONST(0.48290034380003727),  FRAC_CONST(0.49432120828614462),
    FRAC_CONST(0.50565737337798455),   FRAC_CONST(0.51690689668202761),  FRAC_CONST(0.52806785065036799),  FRAC_CONST(0.53913832291100017),  FRAC_CONST(0.55011641659549337),
    FRAC_CONST(0.56100025066400983),   FRAC_CONST(0.57178796022761225),  FRAC_CONST(0.58247769686780215),  FRAC_CONST(0.59306762895323706),  FRAC_CONST(0.60355594195357143),
    FRAC_CONST(0.61394083875036642),   FRAC_CONST(0.62422053994501758),  FRAC_CONST(0.63439328416364549),  FRAC_CONST(0.64445732835889735),  FRAC_CONST(0.65441094810861034),
    FRAC_CONST(0.66425243791128175),   FRAC_CONST(0.67398011147829784),  FRAC_CONST(0.68359230202287125),  FRAC_CONST(0.69308736254563585),  FRAC_CONST(0.70246366611685174),
    FRAC_CONST(0.71171960615517138),   FRAC_CONST(0.72085359670291882),  FRAC_CONST(0.7298640726978356),   FRAC_CONST(0.73874949024124625),  FRAC_CONST(0.74750832686259672),
    FRAC_CONST(0.75613908178032285),   FRAC_CONST(0.76464027615900032),  FRAC_CONST(0.77301045336273699),  FRAC_CONST(0.78124817920475853),  FRAC_CONST(0.78935204219315003),
    FRAC_CONST(0.79732065377270711),   FRAC_CONST(0.80515264856285829),  FRAC_CONST(0.81284668459161513),  FRAC_CONST(0.82040144352551359),  FRAC_CONST(0.82781563089550203),
    FRAC_CONST(0.83508797631874299),   FRAC_CONST(0.84221723371628654),  FRAC_CONST(0.84920218152657889),  FRAC_CONST(0.85604162291477137),  FRAC_CONST(0.86273438597779184),
    FRAC_CONST(0.86927932394514362),   FRAC_CONST(0.87567531537539967),  FRAC_CONST(0.88192126434835494),  FRAC_CONST(0.88801610065280734),  FRAC_CONST(0.89395877996993212),
    FRAC_CONST(0.8997482840522214),    FRAC_CONST(0.90538362089795521),  FRAC_CONST(0.91086382492117568),  FRAC_CONST(0.91618795711713596),  FRAC_CONST(0.92135510522319242),
    FRAC_CONST(0.9263643838751181),    FRAC_CONST(0.93121493475880346),  FRAC_CONST(0.93590592675732565),  FRAC_CONST(0.94043655609335486),  FRAC_CONST(0.94480604646687805),
    FRAC_CONST(0.94901364918821385),   FRAC_CONST(0.95305864330629697),  FRAC_CONST(0.95694033573220882),  FRAC_CONST(0.9606580613579353),   FRAC_CONST(0.96421118317032928),
    FRAC_CONST(0.96759909236025976),   FRAC_CONST(0.9708212084269281),   FRAC_CONST(0.97387697927733363),  FRAC_CONST(0.97676588132087239),  FRAC_CONST(0.97948741955905139),
    FRAC_CONST(0.98204112767030394),   FRAC_CONST(0.98442656808989171),  FRAC_CONST(0.98664333208487898),  FRAC_CONST(0.98869103982416728),  FRAC_CONST(0.99056934044357725),
    FRAC_CONST(0.99227791210596705),   FRAC_CONST(0.99381646205637808),  FRAC_CONST(0.99518472667219682),  FRAC_CONST(0.99638247150832537),  FRAC_CONST(0.99740949133735191),
    FRAC_CONST(0.99826561018471593),   FRAC_CONST(0.99895068135886012),  FRAC_CONST(0.99946458747636568),  FRAC_CONST(0.99980724048206482),  FRAC_CONST(0.99997858166412923)};
#endif

#ifdef LD_DEC
 const int32_t sine_mid_512[] = {
    FRAC_CONST(0.0015339801862847655), FRAC_CONST(0.0046019261204485705), FRAC_CONST(0.007669828739531097), FRAC_CONST(0.010737659167264491), FRAC_CONST(0.013805388528060391),
    FRAC_CONST(0.01687298794728171),   FRAC_CONST(0.019940428551514441),  FRAC_CONST(0.023007681468839369), FRAC_CONST(0.026074717829103901), FRAC_CONST(0.029141508764193722),
    FRAC_CONST(0.032208025408304586),  FRAC_CONST(0.035274238898213947),  FRAC_CONST(0.038340120373552694), FRAC_CONST(0.041405640977076739), FRAC_CONST(0.044470771854938668),
    FRAC_CONST(0.047535484156959303),  FRAC_CONST(0.050599749036899282),  FRAC_CONST(0.05366353765273052),  FRAC_CONST(0.056726821166907748), FRAC_CONST(0.059789570746639868),
    FRAC_CONST(0.062851757564161406),  FRAC_CONST(0.065913352797003805),  FRAC_CONST(0.068974327628266746), FRAC_CONST(0.072034653246889332), FRAC_CONST(0.075094300847921305),
    FRAC_CONST(0.078153241632794232),  FRAC_CONST(0.081211446809592441),  FRAC_CONST(0.084268887593324071), FRAC_CONST(0.087325535206192059), FRAC_CONST(0.090381360877864983),
    FRAC_CONST(0.093436335845747787),  FRAC_CONST(0.096490431355252593),  FRAC_CONST(0.099543618660069319), FRAC_CONST(0.10259586902243628),  FRAC_CONST(0.10564715371341062),
    FRAC_CONST(0.10869744401313872),   FRAC_CONST(0.11174671121112659),   FRAC_CONST(0.11479492660651008),  FRAC_CONST(0.11784206150832498),  FRAC_CONST(0.12088808723577708),
    FRAC_CONST(0.12393297511851216),   FRAC_CONST(0.12697669649688587),   FRAC_CONST(0.13001922272223335),  FRAC_CONST(0.13306052515713906),  FRAC_CONST(0.1361005751757062),
    FRAC_CONST(0.1391393441638262),    FRAC_CONST(0.14217680351944803),   FRAC_CONST(0.14521292465284746),  FRAC_CONST(0.14824767898689603),  FRAC_CONST(0.15128103795733022),
    FRAC_CONST(0.1543129730130201),    FRAC_CONST(0.15734345561623825),   FRAC_CONST(0.16037245724292828),  FRAC_CONST(0.16339994938297323),  FRAC_CONST(0.1664259035404641),
    FRAC_CONST(0.16945029123396796),   FRAC_CONST(0.17247308399679595),   FRAC_CONST(0.17549425337727143),  FRAC_CONST(0.17851377093899751),  FRAC_CONST(0.18153160826112497),
    FRAC_CONST(0.18454773693861962),   FRAC_CONST(0.1875621285825296),    FRAC_CONST(0.19057475482025274),  FRAC_CONST(0.19358558729580361),  FRAC_CONST(0.19659459767008022),
    FRAC_CONST(0.19960175762113097),   FRAC_CONST(0.20260703884442113),   FRAC_CONST(0.20561041305309924),  FRAC_CONST(0.20861185197826349),  FRAC_CONST(0.21161132736922755),
    FRAC_CONST(0.21460881099378676),   FRAC_CONST(0.21760427463848364),   FRAC_CONST(0.22059769010887351),  FRAC_CONST(0.22358902922978999),  FRAC_CONST(0.22657826384561),
    FRAC_CONST(0.22956536582051887),   FRAC_CONST(0.23255030703877524),   FRAC_CONST(0.23553305940497549),  FRAC_CONST(0.23851359484431842),  FRAC_CONST(0.24149188530286933),
    FRAC_CONST(0.24446790274782415),   FRAC_CONST(0.24744161916777327),   FRAC_CONST(0.25041300657296522),  FRAC_CONST(0.25338203699557016),  FRAC_CONST(0.25634868248994291),
    FRAC_CONST(0.25931291513288623),   FRAC_CONST(0.26227470702391359),   FRAC_CONST(0.26523403028551179),  FRAC_CONST(0.26819085706340318),  FRAC_CONST(0.27114515952680801),
    FRAC_CONST(0.27409690986870638),   FRAC_CONST(0.2770460803060999),    FRAC_CONST(0.27999264308027322),  FRAC_CONST(0.28293657045705539),  FRAC_CONST(0.28587783472708062),
    FRAC_CONST(0.28881640820604948),   FRAC_CONST(0.29175226323498926),   FRAC_CONST(0.29468537218051433),  FRAC_CONST(0.2976157074350862),   FRAC_CONST(0.30054324141727345),
    FRAC_CONST(0.30346794657201132),   FRAC_CONST(0.30638979537086092),   FRAC_CONST(0.30930876031226873),  FRAC_CONST(0.31222481392182488),  FRAC_CONST(0.31513792875252244),
    FRAC_CONST(0.31804807738501495),   FRAC_CONST(0.32095523242787521),   FRAC_CONST(0.32385936651785285),  FRAC_CONST(0.32676045232013173),  FRAC_CONST(0.32965846252858749),
    FRAC_CONST(0.33255336986604422),   FRAC_CONST(0.3354451470845316),    FRAC_CONST(0.33833376696554113),  FRAC_CONST(0.34121920232028236),  FRAC_CONST(0.34410142598993881),
    FRAC_CONST(0.34698041084592368),   FRAC_CONST(0.34985612979013492),   FRAC_CONST(0.35272855575521073),  FRAC_CONST(0.35559766170478385),  FRAC_CONST(0.35846342063373654),
    FRAC_CONST(0.36132580556845428),   FRAC_CONST(0.36418478956707989),   FRAC_CONST(0.36704034571976718),  FRAC_CONST(0.3698924471489341),   FRAC_CONST(0.37274106700951576),
    FRAC_CONST(0.37558617848921722),   FRAC_CONST(0.37842775480876556),   FRAC_CONST(0.38126576922216238),  FRAC_CONST(0.38410019501693504),  FRAC_CONST(0.38693100551438858),
    FRAC_CONST(0.38975817406985641),   FRAC_CONST(0.39258167407295147),   FRAC_CONST(0.39540147894781635),  FRAC_CONST(0.39821756215337356),  FRAC_CONST(0.40102989718357562),
    FRAC_CONST(0.40383845756765407),   FRAC_CONST(0.40664321687036903),   FRAC_CONST(0.40944414869225759),  FRAC_CONST(0.41224122666988289),  FRAC_CONST(0.41503442447608163),
    FRAC_CONST(0.41782371582021227),   FRAC_CONST(0.42060907444840251),   FRAC_CONST(0.42339047414379605),  FRAC_CONST(0.42616788872679962),  FRAC_CONST(0.42894129205532949),
    FRAC_CONST(0.43171065802505726),   FRAC_CONST(0.43447596056965565),   FRAC_CONST(0.43723717366104409),  FRAC_CONST(0.43999427130963326),  FRAC_CONST(0.44274722756457002),
    FRAC_CONST(0.44549601651398174),   FRAC_CONST(0.44824061228521989),   FRAC_CONST(0.45098098904510386),  FRAC_CONST(0.45371712100016387),  FRAC_CONST(0.45644898239688392),
    FRAC_CONST(0.45917654752194409),   FRAC_CONST(0.46189979070246273),   FRAC_CONST(0.46461868630623782),  FRAC_CONST(0.46733320874198842),  FRAC_CONST(0.47004333245959562),
    FRAC_CONST(0.47274903195034279),   FRAC_CONST(0.47545028174715587),   FRAC_CONST(0.47814705642484301),  FRAC_CONST(0.48083933060033396),  FRAC_CONST(0.48352707893291874),
    FRAC_CONST(0.48621027612448642),   FRAC_CONST(0.48888889691976317),   FRAC_CONST(0.4915629161065499),   FRAC_CONST(0.49423230851595967),  FRAC_CONST(0.49689704902265447),
    FRAC_CONST(0.49955711254508184),   FRAC_CONST(0.50221247404571079),   FRAC_CONST(0.50486310853126759),  FRAC_CONST(0.50750899105297087),  FRAC_CONST(0.51015009670676681),
    FRAC_CONST(0.51278640063356296),   FRAC_CONST(0.51541787801946293),   FRAC_CONST(0.51804450409599934),  FRAC_CONST(0.52066625414036716),  FRAC_CONST(0.52328310347565643),
    FRAC_CONST(0.52589502747108463),   FRAC_CONST(0.52850200154222848),   FRAC_CONST(0.531104001151255),    FRAC_CONST(0.53370100180715296),  FRAC_CONST(0.53629297906596318),
    FRAC_CONST(0.53887990853100842),   FRAC_CONST(0.54146176585312344),   FRAC_CONST(0.54403852673088382),  FRAC_CONST(0.54661016691083486),  FRAC_CONST(0.54917666218771966),
    FRAC_CONST(0.55173798840470734),   FRAC_CONST(0.55429412145362),      FRAC_CONST(0.5568450372751601),   FRAC_CONST(0.55939071185913614),  FRAC_CONST(0.56193112124468947),
    FRAC_CONST(0.5644662415205195),    FRAC_CONST(0.56699604882510868),   FRAC_CONST(0.56952051934694714),  FRAC_CONST(0.57203962932475705),  FRAC_CONST(0.57455335504771576),
    FRAC_CONST(0.57706167285567944),   FRAC_CONST(0.57956455913940563),   FRAC_CONST(0.58206199034077544),  FRAC_CONST(0.58455394295301533),  FRAC_CONST(0.58704039352091797),
    FRAC_CONST(0.58952131864106394),   FRAC_CONST(0.59199669496204099),   FRAC_CONST(0.59446649918466443),  FRAC_CONST(0.5969307080621965),   FRAC_CONST(0.59938929840056454),
    FRAC_CONST(0.60184224705858003),   FRAC_CONST(0.60428953094815596),   FRAC_CONST(0.60673112703452448),  FRAC_CONST(0.60916701233645321),  FRAC_CONST(0.61159716392646191),
    FRAC_CONST(0.61402155893103838),   FRAC_CONST(0.61644017453085365),   FRAC_CONST(0.61885298796097632),  FRAC_CONST(0.62125997651108755),  FRAC_CONST(0.62366111752569453),
    FRAC_CONST(0.62605638840434352),   FRAC_CONST(0.62844576660183271),   FRAC_CONST(0.63082922962842447),  FRAC_CONST(0.63320675505005719),  FRAC_CONST(0.63557832048855611),
    FRAC_CONST(0.63794390362184406),   FRAC_CONST(0.64030348218415167),   FRAC_CONST(0.64265703396622686),  FRAC_CONST(0.64500453681554393),  FRAC_CONST(0.64734596863651206),
    FRAC_CONST(0.64968130739068319),   FRAC_CONST(0.6520105310969595),    FRAC_CONST(0.65433361783180044),  FRAC_CONST(0.65665054572942894),  FRAC_CONST(0.65896129298203732),
    FRAC_CONST(0.66126583783999227),   FRAC_CONST(0.66356415861203977),   FRAC_CONST(0.66585623366550972),  FRAC_CONST(0.66814204142651845),  FRAC_CONST(0.67042156038017309),
    FRAC_CONST(0.67269476907077286),   FRAC_CONST(0.67496164610201193),   FRAC_CONST(0.67722217013718033),  FRAC_CONST(0.67947631989936497),  FRAC_CONST(0.68172407417164971),
    FRAC_CONST(0.6839654117973154),    FRAC_CONST(0.68620031168003859),   FRAC_CONST(0.68842875278409044),  FRAC_CONST(0.6906507141345346),   FRAC_CONST(0.69286617481742463),
    FRAC_CONST(0.69507511398000088),   FRAC_CONST(0.69727751083088652),   FRAC_CONST(0.69947334464028377),  FRAC_CONST(0.70166259474016845),  FRAC_CONST(0.70384524052448494),
    FRAC_CONST(0.70602126144933974),   FRAC_CONST(0.70819063703319529),   FRAC_CONST(0.71035334685706231),  FRAC_CONST(0.71250937056469232),  FRAC_CONST(0.71465868786276898),
    FRAC_CONST(0.71680127852109954),   FRAC_CONST(0.71893712237280438),   FRAC_CONST(0.72106619931450811),  FRAC_CONST(0.72318848930652735),  FRAC_CONST(0.72530397237306066),
    FRAC_CONST(0.72741262860237577),   FRAC_CONST(0.7295144381469969),    FRAC_CONST(0.73160938122389252),  FRAC_CONST(0.73369743811466026),  FRAC_CONST(0.73577858916571348),
    FRAC_CONST(0.73785281478846598),   FRAC_CONST(0.73992009545951609),   FRAC_CONST(0.74198041172083096),  FRAC_CONST(0.74403374417992918),  FRAC_CONST(0.74608007351006378),
    FRAC_CONST(0.74811938045040349),   FRAC_CONST(0.75015164580621496),   FRAC_CONST(0.7521768504490427),   FRAC_CONST(0.75419497531688917),  FRAC_CONST(0.75620600141439454),
    FRAC_CONST(0.75820990981301528),   FRAC_CONST(0.76020668165120242),   FRAC_CONST(0.7621962981345789),   FRAC_CONST(0.76417874053611667),  FRAC_CONST(0.76615399019631281),
    FRAC_CONST(0.76812202852336531),   FRAC_CONST(0.7700828369933479),    FRAC_CONST(0.77203639715038441),  FRAC_CONST(0.77398269060682279),  FRAC_CONST(0.77592169904340758),
    FRAC_CONST(0.77785340420945304),   FRAC_CONST(0.77977778792301444),   FRAC_CONST(0.78169483207105939),  FRAC_CONST(0.7836045186096382),   FRAC_CONST(0.78550682956405393),
    FRAC_CONST(0.78740174702903132),   FRAC_CONST(0.78928925316888565),   FRAC_CONST(0.79116933021769009),  FRAC_CONST(0.79304196047944364),  FRAC_CONST(0.79490712632823701),
    FRAC_CONST(0.79676481020841872),   FRAC_CONST(0.79861499463476082),   FRAC_CONST(0.80045766219262271),  FRAC_CONST(0.80229279553811572),  FRAC_CONST(0.8041203773982657),
    FRAC_CONST(0.80594039057117628),   FRAC_CONST(0.80775281792619036),   FRAC_CONST(0.80955764240405126),  FRAC_CONST(0.81135484701706373),  FRAC_CONST(0.81314441484925359),
    FRAC_CONST(0.81492632905652662),   FRAC_CONST(0.81670057286682785),   FRAC_CONST(0.81846712958029866),  FRAC_CONST(0.82022598256943469),  FRAC_CONST(0.82197711527924155),
    FRAC_CONST(0.82372051122739132),   FRAC_CONST(0.82545615400437744),   FRAC_CONST(0.82718402727366902),  FRAC_CONST(0.82890411477186487),  FRAC_CONST(0.8306164003088462),
    FRAC_CONST(0.83232086776792968),   FRAC_CONST(0.83401750110601813),   FRAC_CONST(0.8357062843537526),   FRAC_CONST(0.83738720161566194),  FRAC_CONST(0.83906023707031263),
    FRAC_CONST(0.84072537497045807),   FRAC_CONST(0.84238259964318596),   FRAC_CONST(0.84403189549006641),  FRAC_CONST(0.84567324698729907),  FRAC_CONST(0.84730663868585832),
    FRAC_CONST(0.84893205521163961),   FRAC_CONST(0.85054948126560337),   FRAC_CONST(0.85215890162391983),  FRAC_CONST(0.8537603011381113),   FRAC_CONST(0.85535366473519603),
    FRAC_CONST(0.85693897741782865),   FRAC_CONST(0.85851622426444274),   FRAC_CONST(0.86008539042939014),  FRAC_CONST(0.8616464611430813),   FRAC_CONST(0.86319942171212416),
    FRAC_CONST(0.86474425751946238),   FRAC_CONST(0.86628095402451299),   FRAC_CONST(0.86780949676330321),  FRAC_CONST(0.86932987134860673),  FRAC_CONST(0.87084206347007886),
    FRAC_CONST(0.87234605889439154),   FRAC_CONST(0.87384184346536675),   FRAC_CONST(0.87532940310411078),  FRAC_CONST(0.87680872380914576),  FRAC_CONST(0.87827979165654146),
    FRAC_CONST(0.87974259280004741),   FRAC_CONST(0.88119711347122198),   FRAC_CONST(0.88264333997956279),  FRAC_CONST(0.88408125871263499),  FRAC_CONST(0.88551085613619995),
    FRAC_CONST(0.88693211879434208),   FRAC_CONST(0.88834503330959624),   FRAC_CONST(0.88974958638307289),  FRAC_CONST(0.89114576479458318),  FRAC_CONST(0.89253355540276469),
    FRAC_CONST(0.89391294514520325),   FRAC_CONST(0.89528392103855758),   FRAC_CONST(0.89664647017868015),  FRAC_CONST(0.89800057974073988),  FRAC_CONST(0.89934623697934146),
    FRAC_CONST(0.90068342922864686),   FRAC_CONST(0.90201214390249307),   FRAC_CONST(0.90333236849451182),  FRAC_CONST(0.90464409057824624),  FRAC_CONST(0.90594729780726846),
    FRAC_CONST(0.90724197791529593),   FRAC_CONST(0.90852811871630612),   FRAC_CONST(0.90980570810465222),  FRAC_CONST(0.91107473405517625),  FRAC_CONST(0.91233518462332275),
    FRAC_CONST(0.91358704794525081),   FRAC_CONST(0.91483031223794609),   FRAC_CONST(0.91606496579933161),  FRAC_CONST(0.91729099700837791),  FRAC_CONST(0.91850839432521225),
    FRAC_CONST(0.91971714629122736),   FRAC_CONST(0.92091724152918952),   FRAC_CONST(0.92210866874334507),  FRAC_CONST(0.92329141671952764),  FRAC_CONST(0.9244654743252626),
    FRAC_CONST(0.92563083050987272),   FRAC_CONST(0.92678747430458175),   FRAC_CONST(0.92793539482261789),  FRAC_CONST(0.92907458125931575),  FRAC_CONST(0.93020502289221907),
    FRAC_CONST(0.93132670908118043),   FRAC_CONST(0.93243962926846236),   FRAC_CONST(0.93354377297883617),  FRAC_CONST(0.93463912981968078),  FRAC_CONST(0.93572568948108037),
    FRAC_CONST(0.93680344173592156),   FRAC_CONST(0.93787237643998989),   FRAC_CONST(0.93893248353206449),  FRAC_CONST(0.93998375303401394),  FRAC_CONST(0.94102617505088926),
    FRAC_CONST(0.94205973977101731),   FRAC_CONST(0.94308443746609349),   FRAC_CONST(0.94410025849127266),  FRAC_CONST(0.94510719328526061),  FRAC_CONST(0.94610523237040334),
    FRAC_CONST(0.94709436635277722),   FRAC_CONST(0.94807458592227623),   FRAC_CONST(0.94904588185270056),  FRAC_CONST(0.950008245001843),    FRAC_CONST(0.95096166631157508),
    FRAC_CONST(0.95190613680793223),   FRAC_CONST(0.95284164760119872),   FRAC_CONST(0.95376818988599033),  FRAC_CONST(0.95468575494133834),  FRAC_CONST(0.95559433413077111),
    FRAC_CONST(0.95649391890239499),   FRAC_CONST(0.95738450078897586),   FRAC_CONST(0.95826607140801767),  FRAC_CONST(0.95913862246184189),  FRAC_CONST(0.96000214573766585),
    FRAC_CONST(0.96085663310767966),   FRAC_CONST(0.96170207652912254),   FRAC_CONST(0.96253846804435916),  FRAC_CONST(0.96336579978095405),  FRAC_CONST(0.96418406395174572),
    FRAC_CONST(0.96499325285492032),   FRAC_CONST(0.96579335887408357),   FRAC_CONST(0.96658437447833312),  FRAC_CONST(0.96736629222232851),  FRAC_CONST(0.96813910474636233),
    FRAC_CONST(0.96890280477642887),   FRAC_CONST(0.96965738512429245),   FRAC_CONST(0.9704028386875555),   FRAC_CONST(0.97113915844972509),  FRAC_CONST(0.9718663374802794),
    FRAC_CONST(0.97258436893473221),   FRAC_CONST(0.97329324605469825),   FRAC_CONST(0.97399296216795583),  FRAC_CONST(0.97468351068851067),  FRAC_CONST(0.97536488511665687),
    FRAC_CONST(0.97603707903903902),   FRAC_CONST(0.97670008612871184),   FRAC_CONST(0.97735390014519996),  FRAC_CONST(0.97799851493455714),  FRAC_CONST(0.9786339244294231),
    FRAC_CONST(0.97926012264908202),   FRAC_CONST(0.97987710369951764),   FRAC_CONST(0.98048486177346938),  FRAC_CONST(0.98108339115048659),  FRAC_CONST(0.98167268619698311),
    FRAC_CONST(0.98225274136628937),   FRAC_CONST(0.98282355119870524),   FRAC_CONST(0.98338511032155118),  FRAC_CONST(0.98393741344921892),  FRAC_CONST(0.98448045538322093),
    FRAC_CONST(0.98501423101223984),   FRAC_CONST(0.98553873531217606),   FRAC_CONST(0.98605396334619544),  FRAC_CONST(0.98655991026477541),  FRAC_CONST(0.98705657130575097),
    FRAC_CONST(0.98754394179435923),   FRAC_CONST(0.98802201714328353),   FRAC_CONST(0.98849079285269659),  FRAC_CONST(0.98895026451030299),  FRAC_CONST(0.98940042779138038),
    FRAC_CONST(0.98984127845882053),   FRAC_CONST(0.99027281236316911),   FRAC_CONST(0.99069502544266463),  FRAC_CONST(0.99110791372327678),  FRAC_CONST(0.9915114733187439),
    FRAC_CONST(0.99190570043060933),   FRAC_CONST(0.99229059134825737),   FRAC_CONST(0.99266614244894802),  FRAC_CONST(0.99303235019785141),  FRAC_CONST(0.99338921114808065),
    FRAC_CONST(0.9937367219407246),    FRAC_CONST(0.99407487930487937),   FRAC_CONST(0.9944036800576791),   FRAC_CONST(0.9947231211043257),   FRAC_CONST(0.99503319943811863),
    FRAC_CONST(0.99533391214048228),   FRAC_CONST(0.99562525638099431),   FRAC_CONST(0.99590722941741172),  FRAC_CONST(0.99617982859569687),  FRAC_CONST(0.99644305135004263),
    FRAC_CONST(0.99669689520289606),   FRAC_CONST(0.99694135776498216),   FRAC_CONST(0.99717643673532619),  FRAC_CONST(0.9974021299012753),   FRAC_CONST(0.99761843513851955),
    FRAC_CONST(0.99782535041111164),   FRAC_CONST(0.99802287377148624),   FRAC_CONST(0.99821100336047819),  FRAC_CONST(0.99838973740734016),  FRAC_CONST(0.99855907422975931),
    FRAC_CONST(0.99871901223387294),   FRAC_CONST(0.99886954991428356),   FRAC_CONST(0.99901068585407338),  FRAC_CONST(0.99914241872481691),  FRAC_CONST(0.99926474728659442),
    FRAC_CONST(0.99937767038800285),   FRAC_CONST(0.99948118696616695),   FRAC_CONST(0.99957529604674922),  FRAC_CONST(0.99965999674395922),  FRAC_CONST(0.99973528826056168),
    FRAC_CONST(0.99980116988788426),   FRAC_CONST(0.99985764100582386),   FRAC_CONST(0.9999047010828529),   FRAC_CONST(0.99994234967602391),  FRAC_CONST(0.99997058643097414),
    FRAC_CONST(0.9999894110819284),    FRAC_CONST(0.99999882345170188)};

    #ifdef ALLOW_SMALL_FRAMELENGTH
 const int32_t sine_mid_480[] = {
    FRAC_CONST(0.0016362454436240478), FRAC_CONST(0.00490871880799799),  FRAC_CONST(0.0081811396039371282), FRAC_CONST(0.011453472786443779), FRAC_CONST(0.014725683311458524),
    FRAC_CONST(0.017997736136235509),  FRAC_CONST(0.021269596219717739), FRAC_CONST(0.024541228522912285),  FRAC_CONST(0.027812598009265607), FRAC_CONST(0.03108366964503869),
    FRAC_CONST(0.034354408399682276),  FRAC_CONST(0.037624779246211978), FRAC_CONST(0.04089474716158345),   FRAC_CONST(0.044164277127067358), FRAC_CONST(0.047433334128624507),
    FRAC_CONST(0.050701883157280733),  FRAC_CONST(0.053969889209501881), FRAC_CONST(0.057237317287568618),  FRAC_CONST(0.060504132399951269), FRAC_CONST(0.063770299561684493),
    FRAC_CONST(0.06703578379474201),   FRAC_CONST(0.070300550128411174), FRAC_CONST(0.073564563599667426),  FRAC_CONST(0.076827789253548759), FRAC_CONST(0.080090192143530081),
    FRAC_CONST(0.083351737331897449),  FRAC_CONST(0.086612389890122182), FRAC_CONST(0.089872114899234967),  FRAC_CONST(0.093130877450199795), FRAC_CONST(0.096388642644287828),
    FRAC_CONST(0.09964537559345106),   FRAC_CONST(0.1029010414206961),   FRAC_CONST(0.10615560526045748),   FRAC_CONST(0.10940903225897117),  FRAC_CONST(0.11266128757464781),
    FRAC_CONST(0.11591233637844581),   FRAC_CONST(0.11916214385424433),  FRAC_CONST(0.1224106751992162),    FRAC_CONST(0.12565789562420052),  FRAC_CONST(0.12890377035407541),
    FRAC_CONST(0.13214826462813015),   FRAC_CONST(0.13539134370043773),  FRAC_CONST(0.13863297284022669),   FRAC_CONST(0.14187311733225325),  FRAC_CONST(0.14511174247717309),
    FRAC_CONST(0.14834881359191271),   FRAC_CONST(0.15158429601004111),  FRAC_CONST(0.15481815508214106),   FRAC_CONST(0.1580503561761798),   FRAC_CONST(0.16128086467788047),
    FRAC_CONST(0.16450964599109233),   FRAC_CONST(0.16773666553816149),  FRAC_CONST(0.17096188876030122),   FRAC_CONST(0.17418528111796186),  FRAC_CONST(0.17740680809120093),
    FRAC_CONST(0.18062643518005275),   FRAC_CONST(0.18384412790489776),  FRAC_CONST(0.18705985180683199),   FRAC_CONST(0.19027357244803589),  FRAC_CONST(0.19348525541214331),
    FRAC_CONST(0.19669486630460997),   FRAC_CONST(0.19990237075308173),  FRAC_CONST(0.20310773440776286),   FRAC_CONST(0.20631092294178383),  FRAC_CONST(0.20951190205156878),
    FRAC_CONST(0.21271063745720317),   FRAC_CONST(0.21590709490280058),  FRAC_CONST(0.2191012401568698),    FRAC_CONST(0.22229303901268133),  FRAC_CONST(0.22548245728863364),
    FRAC_CONST(0.22866946082861941),   FRAC_CONST(0.23185401550239115),  FRAC_CONST(0.23503608720592667),   FRAC_CONST(0.23821564186179459),  FRAC_CONST(0.24139264541951888),
    FRAC_CONST(0.24456706385594387),   FRAC_CONST(0.24773886317559846),  FRAC_CONST(0.25090800941106001),   FRAC_CONST(0.25407446862331851),  FRAC_CONST(0.25723820690213967),
    FRAC_CONST(0.26039919036642817),   FRAC_CONST(0.26355738516459076),  FRAC_CONST(0.26671275747489837),   FRAC_CONST(0.2698652735058486),   FRAC_CONST(0.27301489949652735),
    FRAC_CONST(0.27616160171697068),   FRAC_CONST(0.27930534646852595),  FRAC_CONST(0.28244610008421245),   FRAC_CONST(0.2855838289290823),   FRAC_CONST(0.28871849940058025),
    FRAC_CONST(0.29185007792890405),   FRAC_CONST(0.29497853097736348),  FRAC_CONST(0.2981038250427398),    FRAC_CONST(0.30122592665564446),  FRAC_CONST(0.30434480238087736),
    FRAC_CONST(0.30746041881778519),   FRAC_CONST(0.31057274260061901),  FRAC_CONST(0.31368174039889146),   FRAC_CONST(0.31678737891773395),  FRAC_CONST(0.31988962489825296),
    FRAC_CONST(0.32298844511788638),   FRAC_CONST(0.32608380639075912),  FRAC_CONST(0.32917567556803889),   FRAC_CONST(0.33226401953829071),  FRAC_CONST(0.33534880522783189),
    FRAC_CONST(0.33842999960108583),   FRAC_CONST(0.34150756966093632),  FRAC_CONST(0.34458148244908043),   FRAC_CONST(0.34765170504638188),  FRAC_CONST(0.35071820457322322),
    FRAC_CONST(0.35378094818985806),   FRAC_CONST(0.35683990309676283),  FRAC_CONST(0.35989503653498811),   FRAC_CONST(0.36294631578650921),  FRAC_CONST(0.36599370817457672),
    FRAC_CONST(0.36903718106406647),   FRAC_CONST(0.37207670186182878),  FRAC_CONST(0.37511223801703802),   FRAC_CONST(0.37814375702154046),  FRAC_CONST(0.38117122641020335),
    FRAC_CONST(0.38419461376126157),   FRAC_CONST(0.38721388669666562),  FRAC_CONST(0.39022901288242801),   FRAC_CONST(0.39323996002896966),  FRAC_CONST(0.39624669589146555),
    FRAC_CONST(0.39924918827019029),   FRAC_CONST(0.40224740501086254),  FRAC_CONST(0.40524131400498986),   FRAC_CONST(0.40823088319021217),  FRAC_CONST(0.41121608055064529),
    FRAC_CONST(0.41419687411722372),   FRAC_CONST(0.41717323196804335),  FRAC_CONST(0.42014512222870243),   FRAC_CONST(0.42311251307264408),  FRAC_CONST(0.42607537272149631),
    FRAC_CONST(0.4290336694454126),    FRAC_CONST(0.43198737156341183),  FRAC_CONST(0.43493644744371707),   FRAC_CONST(0.43788086550409511),  FRAC_CONST(0.44082059421219388),
    FRAC_CONST(0.44375560208588088),   FRAC_CONST(0.44668585769357955),  FRAC_CONST(0.4496113296546066),    FRAC_CONST(0.45253198663950756),  FRAC_CONST(0.45544779737039259),
    FRAC_CONST(0.45835873062127125),   FRAC_CONST(0.46126475521838717),  FRAC_CONST(0.46416584004055156),   FRAC_CONST(0.46706195401947659),  FRAC_CONST(0.46995306614010829),
    FRAC_CONST(0.47283914544095862),   FRAC_CONST(0.47572016101443682),  FRAC_CONST(0.47859608200718085),   FRAC_CONST(0.4814668776203872),   FRAC_CONST(0.48433251711014125),
    FRAC_CONST(0.4871929697877464),    FRAC_CONST(0.49004820502005247),  FRAC_CONST(0.49289819222978404),   FRAC_CONST(0.49574290089586776),  FRAC_CONST(0.49858230055375902),
    FRAC_CONST(0.50141636079576901),   FRAC_CONST(0.50424505127138919),  FRAC_CONST(0.50706834168761705),   FRAC_CONST(0.50988620180928057),  FRAC_CONST(0.51269860145936175),
    FRAC_CONST(0.51550551051931948),   FRAC_CONST(0.51830689892941317),  FRAC_CONST(0.5211027366890234),    FRAC_CONST(0.52389299385697385),  FRAC_CONST(0.52667764055185196),
    FRAC_CONST(0.52945664695232897),   FRAC_CONST(0.53222998329747884),  FRAC_CONST(0.53499761988709726),   FRAC_CONST(0.53775952708201991),  FRAC_CONST(0.54051567530443978),
    FRAC_CONST(0.54326603503822357),   FRAC_CONST(0.54601057682922816),  FRAC_CONST(0.54874927128561579),   FRAC_CONST(0.55148208907816942),  FRAC_CONST(0.55420900094060566),
    FRAC_CONST(0.55692997766988939),   FRAC_CONST(0.559644990126546),    FRAC_CONST(0.56235400923497314),   FRAC_CONST(0.56505700598375252),  FRAC_CONST(0.56775395142596052),
    FRAC_CONST(0.57044481667947822),   FRAC_CONST(0.57312957292730071),  FRAC_CONST(0.57580819141784534),   FRAC_CONST(0.57848064346525996),  FRAC_CONST(0.58114690044973039),
    FRAC_CONST(0.58380693381778626),   FRAC_CONST(0.58646071508260733),  FRAC_CONST(0.58910821582432815),   FRAC_CONST(0.5917494076903429),   FRAC_CONST(0.5943842623956086),
    FRAC_CONST(0.59701275172294799),   FRAC_CONST(0.59963484752335228),  FRAC_CONST(0.60225052171628191),   FRAC_CONST(0.60485974628996786),  FRAC_CONST(0.60746249330171098),
    FRAC_CONST(0.61005873487818185),   FRAC_CONST(0.61264844321571899),  FRAC_CONST(0.61523159058062682),   FRAC_CONST(0.61780814930947225),  FRAC_CONST(0.62037809180938108),
    FRAC_CONST(0.62294139055833397),   FRAC_CONST(0.6254980181054608),   FRAC_CONST(0.62804794707133416),   FRAC_CONST(0.63059115014826372),  FRAC_CONST(0.63312760010058777),
    FRAC_CONST(0.63565726976496484),   FRAC_CONST(0.63818013205066515),  FRAC_CONST(0.64069615993986073),   FRAC_CONST(0.64320532648791406),  FRAC_CONST(0.64570760482366729),
    FRAC_CONST(0.64820296814972966),   FRAC_CONST(0.65069138974276486),  FRAC_CONST(0.65317284295377676),   FRAC_CONST(0.65564730120839498),  FRAC_CONST(0.65811473800715958),
    FRAC_CONST(0.660575126925805),     FRAC_CONST(0.66302844161554231),  FRAC_CONST(0.6654746558033422),    FRAC_CONST(0.66791374329221598),  FRAC_CONST(0.67034567796149647),
    FRAC_CONST(0.67277043376711676),   FRAC_CONST(0.67518798474189046),  FRAC_CONST(0.67759830499578866),   FRAC_CONST(0.68000136871621808),  FRAC_CONST(0.68239715016829683),
    FRAC_CONST(0.6847856236951303),    FRAC_CONST(0.68716676371808583),  FRAC_CONST(0.68954054473706683),   FRAC_CONST(0.69190694133078579),  FRAC_CONST(0.69426592815703603),
    FRAC_CONST(0.69661747995296419),   FRAC_CONST(0.69896157153533944),  FRAC_CONST(0.70129817780082437),   FRAC_CONST(0.7036272737262429),   FRAC_CONST(0.70594883436884903),
    FRAC_CONST(0.70826283486659336),   FRAC_CONST(0.71056925043838959),  FRAC_CONST(0.71286805638437978),   FRAC_CONST(0.71515922808619936),  FRAC_CONST(0.71744274100723993),
    FRAC_CONST(0.71971857069291278),   FRAC_CONST(0.7219866927709101),   FRAC_CONST(0.72424708295146689),   FRAC_CONST(0.72649971702762028),  FRAC_CONST(0.72874457087546896),
    FRAC_CONST(0.73098162045443171),   FRAC_CONST(0.73321084180750484),  FRAC_CONST(0.73543221106151868),   FRAC_CONST(0.73764570442739286),  FRAC_CONST(0.73985129820039208),
    FRAC_CONST(0.74204896876037885),   FRAC_CONST(0.7442386925720671),   FRAC_CONST(0.74642044618527381),   FRAC_CONST(0.74859420623517081),  FRAC_CONST(0.75075994944253421),
    FRAC_CONST(0.75291765261399446),   FRAC_CONST(0.75506729264228367),  FRAC_CONST(0.75720884650648446),   FRAC_CONST(0.75934229127227548),  FRAC_CONST(0.76146760409217706),
    FRAC_CONST(0.76358476220579641),   FRAC_CONST(0.7656937429400712),   FRAC_CONST(0.76779452370951196),   FRAC_CONST(0.76988708201644451),  FRAC_CONST(0.77197139545125026),
    FRAC_CONST(0.7740474416926072),    FRAC_CONST(0.77611519850772781),  FRAC_CONST(0.77817464375259782),   FRAC_CONST(0.78022575537221317),  FRAC_CONST(0.78226851140081632),
    FRAC_CONST(0.78430288996213138),   FRAC_CONST(0.78632886926959822),  FRAC_CONST(0.78834642762660623),   FRAC_CONST(0.79035554342672631),  FRAC_CONST(0.79235619515394229),
    FRAC_CONST(0.79434836138288134),   FRAC_CONST(0.79633202077904397),  FRAC_CONST(0.79830715209903147),   FRAC_CONST(0.8002737341907743),   FRAC_CONST(0.80223174599375802),
    FRAC_CONST(0.80418116653924954),   FRAC_CONST(0.80612197495052085),  FRAC_CONST(0.80805415044307316),   FRAC_CONST(0.80997767232485907),  FRAC_CONST(0.81189251999650469),
    FRAC_CONST(0.81379867295152986),   FRAC_CONST(0.81569611077656778),  FRAC_CONST(0.81758481315158371),   FRAC_CONST(0.81946475985009259),  FRAC_CONST(0.82133593073937561),
    FRAC_CONST(0.82319830578069586),   FRAC_CONST(0.82505186502951278),  FRAC_CONST(0.82689658863569615),   FRAC_CONST(0.82873245684373809),  FRAC_CONST(0.83055944999296494),
    FRAC_CONST(0.83237754851774781),   FRAC_CONST(0.83418673294771239),  FRAC_CONST(0.83598698390794668),   FRAC_CONST(0.83777828211920935),  FRAC_CONST(0.83956060839813562),
    FRAC_CONST(0.84133394365744296),   FRAC_CONST(0.84309826890613537),  FRAC_CONST(0.84485356524970701),   FRAC_CONST(0.84659981389034411),  FRAC_CONST(0.84833699612712676),
    FRAC_CONST(0.85006509335622882),   FRAC_CONST(0.8517840870711173),   FRAC_CONST(0.85349395886275037),   FRAC_CONST(0.85519469041977514),  FRAC_CONST(0.85688626352872277),
    FRAC_CONST(0.85856866007420429),   FRAC_CONST(0.86024186203910447),  FRAC_CONST(0.86190585150477417),   FRAC_CONST(0.86356061065122347),  FRAC_CONST(0.86520612175731115),
    FRAC_CONST(0.86684236720093533),   FRAC_CONST(0.86846932945922151),  FRAC_CONST(0.87008699110871135),   FRAC_CONST(0.87169533482554817),  FRAC_CONST(0.87329434338566281),
    FRAC_CONST(0.87488399966495822),   FRAC_CONST(0.87646428663949283),  FRAC_CONST(0.87803518738566277),   FRAC_CONST(0.87959668508038291),  FRAC_CONST(0.88114876300126743),
    FRAC_CONST(0.88269140452680916),   FRAC_CONST(0.8842245931365561),   FRAC_CONST(0.88574831241129048),   FRAC_CONST(0.88726254603320276),  FRAC_CONST(0.88876727778606746),
    FRAC_CONST(0.89026249155541637),   FRAC_CONST(0.8917481713287112),   FRAC_CONST(0.89322430119551532),   FRAC_CONST(0.89469086534766362),  FRAC_CONST(0.89614784807943237),
    FRAC_CONST(0.89759523378770689),   FRAC_CONST(0.89903300697214927),  FRAC_CONST(0.9004611522353636),    FRAC_CONST(0.90187965428306172),  FRAC_CONST(0.90328849792422594),
    FRAC_CONST(0.90468766807127299),   FRAC_CONST(0.90607714974021469),  FRAC_CONST(0.90745692805081868),   FRAC_CONST(0.90882698822676755),  FRAC_CONST(0.91018731559581767),
    FRAC_CONST(0.91153789558995579),   FRAC_CONST(0.91287871374555518),  FRAC_CONST(0.91420975570353069),   FRAC_CONST(0.9155310072094921),   FRAC_CONST(0.91684245411389753),
    FRAC_CONST(0.91814408237220391),   FRAC_CONST(0.91943587804501858),  FRAC_CONST(0.92071782729824769),   FRAC_CONST(0.92198991640324446),  FRAC_CONST(0.92325213173695675),
    FRAC_CONST(0.92450445978207241),   FRAC_CONST(0.92574688712716402),  FRAC_CONST(0.92697940046683291),   FRAC_CONST(0.92820198660185149),  FRAC_CONST(0.92941463243930444),
    FRAC_CONST(0.93061732499272909),   FRAC_CONST(0.93181005138225426),  FRAC_CONST(0.93299279883473885),   FRAC_CONST(0.93416555468390772),  FRAC_CONST(0.93532830637048769),
    FRAC_CONST(0.93648104144234268),   FRAC_CONST(0.93762374755460598),  FRAC_CONST(0.93875641246981323),   FRAC_CONST(0.93987902405803303),  FRAC_CONST(0.94099157029699743),
    FRAC_CONST(0.94209403927222979),   FRAC_CONST(0.94318641917717327),  FRAC_CONST(0.9442686983133165),    FRAC_CONST(0.94534086509031956),  FRAC_CONST(0.9464029080261378),
    FRAC_CONST(0.94745481574714419),   FRAC_CONST(0.94849657698825252),  FRAC_CONST(0.94952818059303667),   FRAC_CONST(0.95054961551385087),  FRAC_CONST(0.95156087081194762),
    FRAC_CONST(0.95256193565759528),   FRAC_CONST(0.95355279933019343),  FRAC_CONST(0.9545334512183884),    FRAC_CONST(0.95550388082018611),  FRAC_CONST(0.95646407774306541),
    FRAC_CONST(0.95741403170408834),   FRAC_CONST(0.95835373253001133),  FRAC_CONST(0.95928317015739362),   FRAC_CONST(0.96020233463270466),  FRAC_CONST(0.96111121611243155),
    FRAC_CONST(0.96200980486318388),   FRAC_CONST(0.96289809126179782),  FRAC_CONST(0.96377606579543984),   FRAC_CONST(0.96464371906170809),  FRAC_CONST(0.96550104176873297),
    FRAC_CONST(0.96634802473527726),   FRAC_CONST(0.96718465889083372),  FRAC_CONST(0.96801093527572268),   FRAC_CONST(0.96882684504118799),  FRAC_CONST(0.96963237944949143),
    FRAC_CONST(0.97042752987400682),   FRAC_CONST(0.97121228779931179),  FRAC_CONST(0.97198664482127939),   FRAC_CONST(0.97275059264716823),  FRAC_CONST(0.97350412309571066),
    FRAC_CONST(0.97424722809720088),   FRAC_CONST(0.97497989969358168),  FRAC_CONST(0.97570213003852857),   FRAC_CONST(0.97641391139753486),  FRAC_CONST(0.97711523614799412),
    FRAC_CONST(0.97780609677928154),   FRAC_CONST(0.97848648589283505),  FRAC_CONST(0.97915639620223371),   FRAC_CONST(0.9798158205332762),   FRAC_CONST(0.98046475182405801),
    FRAC_CONST(0.98110318312504607),   FRAC_CONST(0.98173110759915416),  FRAC_CONST(0.98234851852181571),   FRAC_CONST(0.98295540928105563),  FRAC_CONST(0.9835517733775615),
    FRAC_CONST(0.98413760442475307),   FRAC_CONST(0.98471289614885038),  FRAC_CONST(0.98527764238894122),   FRAC_CONST(0.98583183709704714),  FRAC_CONST(0.98637547433818806),
    FRAC_CONST(0.98690854829044583),   FRAC_CONST(0.98743105324502667),  FRAC_CONST(0.98794298360632238),   FRAC_CONST(0.98844433389196995),  FRAC_CONST(0.98893509873291074),
    FRAC_CONST(0.98941527287344755),   FRAC_CONST(0.98988485117130098),  FRAC_CONST(0.99034382859766479),   FRAC_CONST(0.99079220023725967),  FRAC_CONST(0.99122996128838525),
    FRAC_CONST(0.9916571070629725),    FRAC_CONST(0.99207363298663342),  FRAC_CONST(0.99247953459870997),   FRAC_CONST(0.99287480755232194),  FRAC_CONST(0.99325944761441354),
    FRAC_CONST(0.99363345066579889),   FRAC_CONST(0.99399681270120555),  FRAC_CONST(0.99434952982931812),   FRAC_CONST(0.9946915982728195),   FRAC_CONST(0.99502301436843166),
    FRAC_CONST(0.99534377456695422),   FRAC_CONST(0.9956538754333033),   FRAC_CONST(0.99595331364654771),   FRAC_CONST(0.99624208599994479),  FRAC_CONST(0.99652018940097464),
    FRAC_CONST(0.99678762087137318),   FRAC_CONST(0.99704437754716424),  FRAC_CONST(0.99729045667869021),   FRAC_CONST(0.99752585563064111),  FRAC_CONST(0.99775057188208349),
    FRAC_CONST(0.9979646030264866),    FRAC_CONST(0.99816794677174903),  FRAC_CONST(0.9983606009402225),    FRAC_CONST(0.99854256346873571),  FRAC_CONST(0.99871383240861611),
    FRAC_CONST(0.99887440592571108),   FRAC_CONST(0.99902428230040718),  FRAC_CONST(0.99916345992764877),   FRAC_CONST(0.99929193731695531),  FRAC_CONST(0.99940971309243731),
    FRAC_CONST(0.99951678599281069),   FRAC_CONST(0.99961315487141078),  FRAC_CONST(0.99969881869620425),   FRAC_CONST(0.99977377654980037),  FRAC_CONST(0.99983802762946083),
    FRAC_CONST(0.99989157124710804),   FRAC_CONST(0.9999344068293331),   FRAC_CONST(0.99996653391740109),   FRAC_CONST(0.99998795216725689),  FRAC_CONST(0.99999866134952808)};
    #endif

 const int32_t ld_mid_512[] = {
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),   FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.00000000000000000),
    FRAC_CONST(0.00000000000000000), FRAC_CONST(0.00000000000000000),  FRAC_CONST(0.0061358846491544753), FRAC_CONST(0.01840672990580482),  FRAC_CONST(0.030674803176636626),
    FRAC_CONST(0.04293825693494082), FRAC_CONST(0.055195244349689934), FRAC_CONST(0.067443919563664051),  FRAC_CONST(0.079682437971430126), FRAC_CONST(0.091908956497132724),
    FRAC_CONST(0.10412163387205459), FRAC_CONST(0.11631863091190475),  FRAC_CONST(0.12849811079379317),   FRAC_CONST(0.14065823933284921),  FRAC_CONST(0.15279718525844344),
    FRAC_CONST(0.16491312048996989), FRAC_CONST(0.17700422041214875),  FRAC_CONST(0.18906866414980619),   FRAC_CONST(0.2011046348420919),   FRAC_CONST(0.21311031991609136),
    FRAC_CONST(0.22508391135979283), FRAC_CONST(0.2370236059943672),   FRAC_CONST(0.24892760574572015),   FRAC_CONST(0.26079411791527551),  FRAC_CONST(0.27262135544994898),
    FRAC_CONST(0.28440753721127188), FRAC_CONST(0.29615088824362379),  FRAC_CONST(0.30784964004153487),   FRAC_CONST(0.31950203081601569),  FRAC_CONST(0.33110630575987643),
    FRAC_CONST(0.34266071731199438), FRAC_CONST(0.35416352542049034),  FRAC_CONST(0.36561299780477385),   FRAC_CONST(0.37700741021641826),  FRAC_CONST(0.38834504669882625),
    FRAC_CONST(0.39962419984564679), FRAC_CONST(0.41084317105790391),  FRAC_CONST(0.42200027079979968),   FRAC_CONST(0.43309381885315196),  FRAC_CONST(0.4441221445704292),
    FRAC_CONST(0.45508358712634384), FRAC_CONST(0.46597649576796618),  FRAC_CONST(0.47679923006332209),   FRAC_CONST(0.487550160148436),    FRAC_CONST(0.49822766697278187),
    FRAC_CONST(0.50883014254310699), FRAC_CONST(0.51935599016558964),  FRAC_CONST(0.52980362468629461),   FRAC_CONST(0.54017147272989285),  FRAC_CONST(0.55045797293660481),
    FRAC_CONST(0.56066157619733603), FRAC_CONST(0.57078074588696726),  FRAC_CONST(0.58081395809576453),   FRAC_CONST(0.59075970185887416),  FRAC_CONST(0.60061647938386897),
    FRAC_CONST(0.61038280627630948), FRAC_CONST(0.6200572117632891),   FRAC_CONST(0.62963823891492698),   FRAC_CONST(0.63912444486377573),  FRAC_CONST(0.64851440102211244),
    FRAC_CONST(0.65780669329707864), FRAC_CONST(0.66699992230363747),  FRAC_CONST(0.67609270357531592),   FRAC_CONST(0.68508366777270036),  FRAC_CONST(0.693971460889654),
    FRAC_CONST(0.7027547444572253),  FRAC_CONST(0.71143219574521643),  FRAC_CONST(0.72000250796138165),   FRAC_CONST(0.7284643904482252),   FRAC_CONST(0.73681656887736979),
    FRAC_CONST(0.74505778544146595), FRAC_CONST(0.75318679904361241),  FRAC_CONST(0.76120238548426178),   FRAC_CONST(0.76910333764557959),  FRAC_CONST(0.77688846567323244),
    FRAC_CONST(0.78455659715557524), FRAC_CONST(0.79210657730021239),  FRAC_CONST(0.79953726910790501),   FRAC_CONST(0.80684755354379922),  FRAC_CONST(0.8140363297059483),
    FRAC_CONST(0.82110251499110465), FRAC_CONST(0.8280450452577558),   FRAC_CONST(0.83486287498638001),   FRAC_CONST(0.84155497743689833),  FRAC_CONST(0.84812034480329712),
    FRAC_CONST(0.85455798836540053), FRAC_CONST(0.86086693863776731),  FRAC_CONST(0.86704624551569265),   FRAC_CONST(0.87309497841829009),  FRAC_CONST(0.87901222642863341),
    FRAC_CONST(0.88479709843093779), FRAC_CONST(0.89044872324475788),  FRAC_CONST(0.89596624975618511),   FRAC_CONST(0.90134884704602203),  FRAC_CONST(0.90659570451491533),
    FRAC_CONST(0.91170603200542988), FRAC_CONST(0.9166790599210427),   FRAC_CONST(0.9215140393420419),    FRAC_CONST(0.92621024213831127),  FRAC_CONST(0.93076696107898371),
    FRAC_CONST(0.9351835099389475),  FRAC_CONST(0.93945922360218992),  FRAC_CONST(0.94359345816196039),   FRAC_CONST(0.94758559101774109),  FRAC_CONST(0.95143502096900834),
    FRAC_CONST(0.95514116830577067), FRAC_CONST(0.9587034748958716),   FRAC_CONST(0.96212140426904158),   FRAC_CONST(0.9653944416976894),   FRAC_CONST(0.96852209427441727),
    FRAC_CONST(0.97150389098625178), FRAC_CONST(0.97433938278557586),  FRAC_CONST(0.97702814265775439),   FRAC_CONST(0.97956976568544052),  FRAC_CONST(0.98196386910955524),
    FRAC_CONST(0.98421009238692903), FRAC_CONST(0.98630809724459867),  FRAC_CONST(0.98825756773074946),   FRAC_CONST(0.99005821026229712),  FRAC_CONST(0.99170975366909953),
    FRAC_CONST(0.9932119492347945),  FRAC_CONST(0.99456457073425542),  FRAC_CONST(0.99576741446765982),   FRAC_CONST(0.99682029929116567),  FRAC_CONST(0.99772306664419164),
    FRAC_CONST(0.99847558057329477), FRAC_CONST(0.99907772775264536),  FRAC_CONST(0.99952941750109314),   FRAC_CONST(0.9998305817958234),   FRAC_CONST(0.99998117528260111),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000), FRAC_CONST(1.00000000000000000),
};
    #ifdef ALLOW_SMALL_FRAMELENGTH

 const int32_t ld_mid_480[] = {
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.000000000000000000),  FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000), FRAC_CONST(0.000000000000000000),
    FRAC_CONST(0.0065449379673518581), FRAC_CONST(0.019633692460628301), FRAC_CONST(0.032719082821776137), FRAC_CONST(0.045798866936520771), FRAC_CONST(0.058870803651189033),
    FRAC_CONST(0.071932653156719387),  FRAC_CONST(0.084982177372441667), FRAC_CONST(0.09801714032956059),  FRAC_CONST(0.11103530855427769),  FRAC_CONST(0.12403445145048532),
    FRAC_CONST(0.13701234168196802),   FRAC_CONST(0.14996675555404498),  FRAC_CONST(0.16289547339458874),  FRAC_CONST(0.17579627993435451),  FRAC_CONST(0.18866696468655525),
    FRAC_CONST(0.2015053223256171),    FRAC_CONST(0.21430915306505074),  FRAC_CONST(0.2270762630343732),   FRAC_CONST(0.23980446465501654),  FRAC_CONST(0.25249157701515795),
    FRAC_CONST(0.26513542624340797),   FRAC_CONST(0.27773384588129219),  FRAC_CONST(0.29028467725446233),  FRAC_CONST(0.3027857698425746),   FRAC_CONST(0.31523498164776964),
    FRAC_CONST(0.32763017956169349),   FRAC_CONST(0.33996923973099424),  FRAC_CONST(0.35225004792123354),  FRAC_CONST(0.36447049987914965),  FRAC_CONST(0.37662850169321077),
    FRAC_CONST(0.38872197015239557),   FRAC_CONST(0.40074883310314097),  FRAC_CONST(0.41270702980439467),  FRAC_CONST(0.42459451128071307),  FRAC_CONST(0.43640924067334208),
    FRAC_CONST(0.44814919358922256),   FRAC_CONST(0.45981235844785984),  FRAC_CONST(0.47139673682599764),  FRAC_CONST(0.48290034380003727),  FRAC_CONST(0.49432120828614462),
    FRAC_CONST(0.50565737337798455),   FRAC_CONST(0.51690689668202761),  FRAC_CONST(0.52806785065036799),  FRAC_CONST(0.53913832291100017),  FRAC_CONST(0.55011641659549337),
    FRAC_CONST(0.56100025066400983),   FRAC_CONST(0.57178796022761225),  FRAC_CONST(0.58247769686780215),  FRAC_CONST(0.59306762895323706),  FRAC_CONST(0.60355594195357143),
    FRAC_CONST(0.61394083875036642),   FRAC_CONST(0.62422053994501758),  FRAC_CONST(0.63439328416364549),  FRAC_CONST(0.64445732835889735),  FRAC_CONST(0.65441094810861034),
    FRAC_CONST(0.66425243791128175),   FRAC_CONST(0.67398011147829784),  FRAC_CONST(0.68359230202287125),  FRAC_CONST(0.69308736254563585),  FRAC_CONST(0.70246366611685174),
    FRAC_CONST(0.71171960615517138),   FRAC_CONST(0.72085359670291882),  FRAC_CONST(0.7298640726978356),   FRAC_CONST(0.73874949024124625),  FRAC_CONST(0.74750832686259672),
    FRAC_CONST(0.75613908178032285),   FRAC_CONST(0.76464027615900032),  FRAC_CONST(0.77301045336273699),  FRAC_CONST(0.78124817920475853),  FRAC_CONST(0.78935204219315003),
    FRAC_CONST(0.79732065377270711),   FRAC_CONST(0.80515264856285829),  FRAC_CONST(0.81284668459161513),  FRAC_CONST(0.82040144352551359),  FRAC_CONST(0.82781563089550203),
    FRAC_CONST(0.83508797631874299),   FRAC_CONST(0.84221723371628654),  FRAC_CONST(0.84920218152657889),  FRAC_CONST(0.85604162291477137),  FRAC_CONST(0.86273438597779184),
    FRAC_CONST(0.86927932394514362),   FRAC_CONST(0.87567531537539967),  FRAC_CONST(0.88192126434835494),  FRAC_CONST(0.88801610065280734),  FRAC_CONST(0.89395877996993212),
    FRAC_CONST(0.8997482840522214),    FRAC_CONST(0.90538362089795521),  FRAC_CONST(0.91086382492117568),  FRAC_CONST(0.91618795711713596),  FRAC_CONST(0.92135510522319242),
    FRAC_CONST(0.9263643838751181),    FRAC_CONST(0.93121493475880346),  FRAC_CONST(0.93590592675732565),  FRAC_CONST(0.94043655609335486),  FRAC_CONST(0.94480604646687805),
    FRAC_CONST(0.94901364918821385),   FRAC_CONST(0.95305864330629697),  FRAC_CONST(0.95694033573220882),  FRAC_CONST(0.9606580613579353),   FRAC_CONST(0.96421118317032928),
    FRAC_CONST(0.96759909236025976),   FRAC_CONST(0.9708212084269281),   FRAC_CONST(0.97387697927733363),  FRAC_CONST(0.97676588132087239),  FRAC_CONST(0.97948741955905139),
    FRAC_CONST(0.98204112767030394),   FRAC_CONST(0.98442656808989171),  FRAC_CONST(0.98664333208487898),  FRAC_CONST(0.98869103982416728),  FRAC_CONST(0.99056934044357725),
    FRAC_CONST(0.99227791210596705),   FRAC_CONST(0.99381646205637808),  FRAC_CONST(0.99518472667219682),  FRAC_CONST(0.99638247150832537),  FRAC_CONST(0.99740949133735191),
    FRAC_CONST(0.99826561018471593),   FRAC_CONST(0.99895068135886012),  FRAC_CONST(0.99946458747636568),  FRAC_CONST(0.99980724048206482),  FRAC_CONST(0.99997858166412923),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
    FRAC_CONST(1.00000000000000000),   FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),  FRAC_CONST(1.00000000000000000),
};
    #endif
#endif

 const int32_t kbd_long_1024[] = {
    FRAC_CONST(0.00029256153896361), FRAC_CONST(0.00042998567353047), FRAC_CONST(0.00054674074589540), FRAC_CONST(0.00065482304299792), FRAC_CONST(0.00075870195068747),
    FRAC_CONST(0.00086059331713336), FRAC_CONST(0.00096177541439010), FRAC_CONST(0.0010630609410878),  FRAC_CONST(0.0011650036308132),  FRAC_CONST(0.0012680012194148),
    FRAC_CONST(0.0013723517232956),  FRAC_CONST(0.0014782864109136),  FRAC_CONST(0.0015859901976719),  FRAC_CONST(0.0016956148252373),  FRAC_CONST(0.0018072876903517),
    FRAC_CONST(0.0019211179405514),  FRAC_CONST(0.0020372007924215),  FRAC_CONST(0.0021556206591754),  FRAC_CONST(0.0022764534599614),  FRAC_CONST(0.0023997683540995),
    FRAC_CONST(0.0025256290631156),  FRAC_CONST(0.0026540948920831),  FRAC_CONST(0.0027852215281403),  FRAC_CONST(0.0029190616715331),  FRAC_CONST(0.0030556655443223),
    FRAC_CONST(0.0031950812943391),  FRAC_CONST(0.0033373553240392),  FRAC_CONST(0.0034825325586930),  FRAC_CONST(0.0036306566699199),  FRAC_CONST(0.0037817702604646),
    FRAC_CONST(0.0039359150179719),  FRAC_CONST(0.0040931318437260),  FRAC_CONST(0.0042534609610026),  FRAC_CONST(0.0044169420066964),  FRAC_CONST(0.0045836141091341),
    FRAC_CONST(0.0047535159544086),  FRAC_CONST(0.0049266858431214),  FRAC_CONST(0.0051031617390698),  FRAC_CONST(0.0052829813111335),  FRAC_CONST(0.0054661819693975),
    FRAC_CONST(0.0056528008963682),  FRAC_CONST(0.0058428750739943),  FRAC_CONST(0.0060364413070882),  FRAC_CONST(0.0062335362436492),  FRAC_CONST(0.0064341963925079),
    FRAC_CONST(0.0066384581386503),  FRAC_CONST(0.0068463577565218),  FRAC_CONST(0.0070579314215715),  FRAC_CONST(0.0072732152202559),  FRAC_CONST(0.0074922451586909),
    FRAC_CONST(0.0077150571701162),  FRAC_CONST(0.0079416871213115),  FRAC_CONST(0.0081721708180857),  FRAC_CONST(0.0084065440099458),  FRAC_CONST(0.0086448423940363),
    FRAC_CONST(0.0088871016184291),  FRAC_CONST(0.0091333572848345),  FRAC_CONST(0.0093836449507939),  FRAC_CONST(0.0096380001314086),  FRAC_CONST(0.0098964583006517),
    FRAC_CONST(0.010159054892306),   FRAC_CONST(0.010425825300561),   FRAC_CONST(0.010696804880310),   FRAC_CONST(0.010972028947167),   FRAC_CONST(0.011251532777236),
    FRAC_CONST(0.011535351606646),   FRAC_CONST(0.011823520630897),   FRAC_CONST(0.012116075003993),   FRAC_CONST(0.012413049837429),   FRAC_CONST(0.012714480198999),
    FRAC_CONST(0.013020401111478),   FRAC_CONST(0.013330847551161),   FRAC_CONST(0.013645854446288),   FRAC_CONST(0.013965456675352),   FRAC_CONST(0.014289689065314),
    FRAC_CONST(0.014618586389712),   FRAC_CONST(0.014952183366697),   FRAC_CONST(0.015290514656976),   FRAC_CONST(0.015633614861688),   FRAC_CONST(0.015981518520214),
    FRAC_CONST(0.016334260107915),   FRAC_CONST(0.016691874033817),   FRAC_CONST(0.017054394638241),   FRAC_CONST(0.017421856190380),   FRAC_CONST(0.017794292885832),
    FRAC_CONST(0.018171738844085),   FRAC_CONST(0.018554228105962),   FRAC_CONST(0.018941794631032),   FRAC_CONST(0.019334472294980),   FRAC_CONST(0.019732294886947),
    FRAC_CONST(0.020135296106839),   FRAC_CONST(0.020543509562604),   FRAC_CONST(0.020956968767488),   FRAC_CONST(0.021375707137257),   FRAC_CONST(0.021799757987407),
    FRAC_CONST(0.022229154530343),   FRAC_CONST(0.022663929872540),   FRAC_CONST(0.023104117011689),   FRAC_CONST(0.023549748833816),   FRAC_CONST(0.024000858110398),
    FRAC_CONST(0.024457477495451),   FRAC_CONST(0.024919639522613),   FRAC_CONST(0.025387376602207),   FRAC_CONST(0.025860721018295),   FRAC_CONST(0.026339704925726),
    FRAC_CONST(0.026824360347160),   FRAC_CONST(0.027314719170100),   FRAC_CONST(0.027810813143900),   FRAC_CONST(0.028312673876775),   FRAC_CONST(0.028820332832801),
    FRAC_CONST(0.029333821328905),   FRAC_CONST(0.029853170531859),   FRAC_CONST(0.030378411455255),   FRAC_CONST(0.030909574956490),   FRAC_CONST(0.031446691733739),
    FRAC_CONST(0.031989792322926),   FRAC_CONST(0.032538907094693),   FRAC_CONST(0.033094066251369),   FRAC_CONST(0.033655299823935),   FRAC_CONST(0.034222637668991),
    FRAC_CONST(0.034796109465717),   FRAC_CONST(0.035375744712844),   FRAC_CONST(0.035961572725616),   FRAC_CONST(0.036553622632758),   FRAC_CONST(0.037151923373446),
    FRAC_CONST(0.037756503694277),   FRAC_CONST(0.038367392146243),   FRAC_CONST(0.038984617081711),   FRAC_CONST(0.039608206651398),   FRAC_CONST(0.040238188801359),
    FRAC_CONST(0.040874591269976),   FRAC_CONST(0.041517441584950),   FRAC_CONST(0.042166767060301),   FRAC_CONST(0.042822594793376),   FRAC_CONST(0.043484951661852),
    FRAC_CONST(0.044153864320760),   FRAC_CONST(0.044829359199509),   FRAC_CONST(0.045511462498913),   FRAC_CONST(0.046200200188234),   FRAC_CONST(0.046895598002228),
    FRAC_CONST(0.047597681438201),   FRAC_CONST(0.048306475753074),   FRAC_CONST(0.049022005960455),   FRAC_CONST(0.049744296827725),   FRAC_CONST(0.050473372873129),
    FRAC_CONST(0.051209258362879),   FRAC_CONST(0.051951977308273),   FRAC_CONST(0.052701553462813),   FRAC_CONST(0.053458010319350),   FRAC_CONST(0.054221371107223),
    FRAC_CONST(0.054991658789428),   FRAC_CONST(0.055768896059787),   FRAC_CONST(0.056553105340134),   FRAC_CONST(0.057344308777513),   FRAC_CONST(0.058142528241393),
    FRAC_CONST(0.058947785320893),   FRAC_CONST(0.059760101322019),   FRAC_CONST(0.060579497264926),   FRAC_CONST(0.061405993881180),   FRAC_CONST(0.062239611611049),
    FRAC_CONST(0.063080370600799),   FRAC_CONST(0.063928290700012),   FRAC_CONST(0.064783391458919),   FRAC_CONST(0.065645692125747),   FRAC_CONST(0.066515211644086),
    FRAC_CONST(0.067391968650269),   FRAC_CONST(0.068275981470777),   FRAC_CONST(0.069167268119652),   FRAC_CONST(0.070065846295935),   FRAC_CONST(0.070971733381121),
    FRAC_CONST(0.071884946436630),   FRAC_CONST(0.072805502201299),   FRAC_CONST(0.073733417088896),   FRAC_CONST(0.074668707185649),   FRAC_CONST(0.075611388247794),
    FRAC_CONST(0.076561475699152),   FRAC_CONST(0.077518984628715),   FRAC_CONST(0.078483929788261),   FRAC_CONST(0.079456325589986),   FRAC_CONST(0.080436186104162),
    FRAC_CONST(0.081423525056808),   FRAC_CONST(0.082418355827392),   FRAC_CONST(0.083420691446553),   FRAC_CONST(0.084430544593841),   FRAC_CONST(0.085447927595483),
    FRAC_CONST(0.086472852422178),   FRAC_CONST(0.087505330686900),   FRAC_CONST(0.088545373642744),   FRAC_CONST(0.089592992180780),   FRAC_CONST(0.090648196827937),
    FRAC_CONST(0.091710997744919),   FRAC_CONST(0.092781404724131),   FRAC_CONST(0.093859427187640),   FRAC_CONST(0.094945074185163),   FRAC_CONST(0.096038354392069),
    FRAC_CONST(0.097139276107423),   FRAC_CONST(0.098247847252041),   FRAC_CONST(0.099364075366580),   FRAC_CONST(0.10048796760965),    FRAC_CONST(0.10161953075597),
    FRAC_CONST(0.10275877119451),    FRAC_CONST(0.10390569492671),    FRAC_CONST(0.10506030756469),    FRAC_CONST(0.10622261432949),    FRAC_CONST(0.10739262004941),
    FRAC_CONST(0.10857032915821),    FRAC_CONST(0.10975574569357),    FRAC_CONST(0.11094887329534),    FRAC_CONST(0.11214971520402),    FRAC_CONST(0.11335827425914),
    FRAC_CONST(0.11457455289772),    FRAC_CONST(0.11579855315274),    FRAC_CONST(0.11703027665170),    FRAC_CONST(0.11826972461510),    FRAC_CONST(0.11951689785504),
    FRAC_CONST(0.12077179677383),    FRAC_CONST(0.12203442136263),    FRAC_CONST(0.12330477120008),    FRAC_CONST(0.12458284545102),    FRAC_CONST(0.12586864286523),
    FRAC_CONST(0.12716216177615),    FRAC_CONST(0.12846340009971),    FRAC_CONST(0.12977235533312),    FRAC_CONST(0.13108902455375),    FRAC_CONST(0.13241340441801),
    FRAC_CONST(0.13374549116025),    FRAC_CONST(0.13508528059173),    FRAC_CONST(0.13643276809961),    FRAC_CONST(0.13778794864595),    FRAC_CONST(0.13915081676677),
    FRAC_CONST(0.14052136657114),    FRAC_CONST(0.14189959174027),    FRAC_CONST(0.14328548552671),    FRAC_CONST(0.14467904075349),    FRAC_CONST(0.14608024981336),
    FRAC_CONST(0.14748910466804),    FRAC_CONST(0.14890559684750),    FRAC_CONST(0.15032971744929),    FRAC_CONST(0.15176145713790),    FRAC_CONST(0.15320080614414),
    FRAC_CONST(0.15464775426459),    FRAC_CONST(0.15610229086100),    FRAC_CONST(0.15756440485987),    FRAC_CONST(0.15903408475193),    FRAC_CONST(0.16051131859170),
    FRAC_CONST(0.16199609399712),    FRAC_CONST(0.16348839814917),    FRAC_CONST(0.16498821779156),    FRAC_CONST(0.16649553923042),    FRAC_CONST(0.16801034833404),
    FRAC_CONST(0.16953263053270),    FRAC_CONST(0.17106237081842),    FRAC_CONST(0.17259955374484),    FRAC_CONST(0.17414416342714),    FRAC_CONST(0.17569618354193),
    FRAC_CONST(0.17725559732720),    FRAC_CONST(0.17882238758238),    FRAC_CONST(0.18039653666830),    FRAC_CONST(0.18197802650733),    FRAC_CONST(0.18356683858343),
    FRAC_CONST(0.18516295394233),    FRAC_CONST(0.18676635319174),    FRAC_CONST(0.18837701650148),    FRAC_CONST(0.18999492360384),    FRAC_CONST(0.19162005379380),
    FRAC_CONST(0.19325238592940),    FRAC_CONST(0.19489189843209),    FRAC_CONST(0.19653856928714),    FRAC_CONST(0.19819237604409),    FRAC_CONST(0.19985329581721),
    FRAC_CONST(0.20152130528605),    FRAC_CONST(0.20319638069594),    FRAC_CONST(0.20487849785865),    FRAC_CONST(0.20656763215298),    FRAC_CONST(0.20826375852540),
    FRAC_CONST(0.20996685149083),    FRAC_CONST(0.21167688513330),    FRAC_CONST(0.21339383310678),    FRAC_CONST(0.21511766863598),    FRAC_CONST(0.21684836451719),
    FRAC_CONST(0.21858589311922),    FRAC_CONST(0.22033022638425),    FRAC_CONST(0.22208133582887),    FRAC_CONST(0.22383919254503),    FRAC_CONST(0.22560376720111),
    FRAC_CONST(0.22737503004300),    FRAC_CONST(0.22915295089517),    FRAC_CONST(0.23093749916189),    FRAC_CONST(0.23272864382838),    FRAC_CONST(0.23452635346201),
    FRAC_CONST(0.23633059621364),    FRAC_CONST(0.23814133981883),    FRAC_CONST(0.23995855159925),    FRAC_CONST(0.24178219846403),    FRAC_CONST(0.24361224691114),
    FRAC_CONST(0.24544866302890),    FRAC_CONST(0.24729141249740),    FRAC_CONST(0.24914046059007),    FRAC_CONST(0.25099577217522),    FRAC_CONST(0.25285731171763),
    FRAC_CONST(0.25472504328019),    FRAC_CONST(0.25659893052556),    FRAC_CONST(0.25847893671788),    FRAC_CONST(0.26036502472451),    FRAC_CONST(0.26225715701781),
    FRAC_CONST(0.26415529567692),    FRAC_CONST(0.26605940238966),    FRAC_CONST(0.26796943845439),    FRAC_CONST(0.26988536478190),    FRAC_CONST(0.27180714189742),
    FRAC_CONST(0.27373472994256),    FRAC_CONST(0.27566808867736),    FRAC_CONST(0.27760717748238),    FRAC_CONST(0.27955195536071),    FRAC_CONST(0.28150238094021),
    FRAC_CONST(0.28345841247557),    FRAC_CONST(0.28542000785059),    FRAC_CONST(0.28738712458038),    FRAC_CONST(0.28935971981364),    FRAC_CONST(0.29133775033492),
    FRAC_CONST(0.29332117256704),    FRAC_CONST(0.29530994257338),    FRAC_CONST(0.29730401606034),    FRAC_CONST(0.29930334837974),    FRAC_CONST(0.30130789453132),
    FRAC_CONST(0.30331760916521),    FRAC_CONST(0.30533244658452),    FRAC_CONST(0.30735236074785),    FRAC_CONST(0.30937730527195),    FRAC_CONST(0.31140723343430),
    FRAC_CONST(0.31344209817583),    FRAC_CONST(0.31548185210356),    FRAC_CONST(0.31752644749341),    FRAC_CONST(0.31957583629288),    FRAC_CONST(0.32162997012390),
    FRAC_CONST(0.32368880028565),    FRAC_CONST(0.32575227775738),    FRAC_CONST(0.32782035320134),    FRAC_CONST(0.32989297696566),    FRAC_CONST(0.33197009908736),
    FRAC_CONST(0.33405166929523),    FRAC_CONST(0.33613763701295),    FRAC_CONST(0.33822795136203),    FRAC_CONST(0.34032256116495),    FRAC_CONST(0.34242141494820),
    FRAC_CONST(0.34452446094547),    FRAC_CONST(0.34663164710072),    FRAC_CONST(0.34874292107143),    FRAC_CONST(0.35085823023181),    FRAC_CONST(0.35297752167598),
    FRAC_CONST(0.35510074222129),    FRAC_CONST(0.35722783841160),    FRAC_CONST(0.35935875652060),    FRAC_CONST(0.36149344255514),    FRAC_CONST(0.36363184225864),
    FRAC_CONST(0.36577390111444),    FRAC_CONST(0.36791956434930),    FRAC_CONST(0.37006877693676),    FRAC_CONST(0.37222148360070),    FRAC_CONST(0.37437762881878),
    FRAC_CONST(0.37653715682603),    FRAC_CONST(0.37870001161834),    FRAC_CONST(0.38086613695607),    FRAC_CONST(0.38303547636766),    FRAC_CONST(0.38520797315322),
    FRAC_CONST(0.38738357038821),    FRAC_CONST(0.38956221092708),    FRAC_CONST(0.39174383740701),    FRAC_CONST(0.39392839225157),    FRAC_CONST(0.39611581767449),
    FRAC_CONST(0.39830605568342),    FRAC_CONST(0.40049904808370),    FRAC_CONST(0.40269473648218),    FRAC_CONST(0.40489306229101),    FRAC_CONST(0.40709396673153),
    FRAC_CONST(0.40929739083810),    FRAC_CONST(0.41150327546197),    FRAC_CONST(0.41371156127524),    FRAC_CONST(0.41592218877472),    FRAC_CONST(0.41813509828594),
    FRAC_CONST(0.42035022996702),    FRAC_CONST(0.42256752381274),    FRAC_CONST(0.42478691965848),    FRAC_CONST(0.42700835718423),    FRAC_CONST(0.42923177591866),
    FRAC_CONST(0.43145711524314),    FRAC_CONST(0.43368431439580),    FRAC_CONST(0.43591331247564),    FRAC_CONST(0.43814404844658),    FRAC_CONST(0.44037646114161),
    FRAC_CONST(0.44261048926688),    FRAC_CONST(0.44484607140589),    FRAC_CONST(0.44708314602359),    FRAC_CONST(0.44932165147057),    FRAC_CONST(0.45156152598727),
    FRAC_CONST(0.45380270770813),    FRAC_CONST(0.45604513466581),    FRAC_CONST(0.45828874479543),    FRAC_CONST(0.46053347593880),    FRAC_CONST(0.46277926584861),
    FRAC_CONST(0.46502605219277),    FRAC_CONST(0.46727377255861),    FRAC_CONST(0.46952236445718),    FRAC_CONST(0.47177176532752),    FRAC_CONST(0.47402191254100),
    FRAC_CONST(0.47627274340557),    FRAC_CONST(0.47852419517009),    FRAC_CONST(0.48077620502869),    FRAC_CONST(0.48302871012505),    FRAC_CONST(0.48528164755674),
    FRAC_CONST(0.48753495437962),    FRAC_CONST(0.48978856761212),    FRAC_CONST(0.49204242423966),    FRAC_CONST(0.49429646121898),    FRAC_CONST(0.49655061548250),
    FRAC_CONST(0.49880482394273),    FRAC_CONST(0.50105902349665),    FRAC_CONST(0.50331315103004),    FRAC_CONST(0.50556714342194),    FRAC_CONST(0.50782093754901),
    FRAC_CONST(0.51007447028990),    FRAC_CONST(0.51232767852971),    FRAC_CONST(0.51458049916433),    FRAC_CONST(0.51683286910489),    FRAC_CONST(0.51908472528213),
    FRAC_CONST(0.52133600465083),    FRAC_CONST(0.52358664419420),    FRAC_CONST(0.52583658092832),    FRAC_CONST(0.52808575190648),    FRAC_CONST(0.53033409422367),
    FRAC_CONST(0.53258154502092),    FRAC_CONST(0.53482804148974),    FRAC_CONST(0.53707352087652),    FRAC_CONST(0.53931792048690),    FRAC_CONST(0.54156117769021),
    FRAC_CONST(0.54380322992385),    FRAC_CONST(0.54604401469766),    FRAC_CONST(0.54828346959835),    FRAC_CONST(0.55052153229384),    FRAC_CONST(0.55275814053768),
    FRAC_CONST(0.55499323217338),    FRAC_CONST(0.55722674513883),    FRAC_CONST(0.55945861747062),    FRAC_CONST(0.56168878730842),    FRAC_CONST(0.56391719289930),
    FRAC_CONST(0.56614377260214),    FRAC_CONST(0.56836846489188),    FRAC_CONST(0.57059120836390),    FRAC_CONST(0.57281194173835),    FRAC_CONST(0.57503060386439),
    FRAC_CONST(0.57724713372458),    FRAC_CONST(0.57946147043912),    FRAC_CONST(0.58167355327012),    FRAC_CONST(0.58388332162591),    FRAC_CONST(0.58609071506528),
    FRAC_CONST(0.58829567330173),    FRAC_CONST(0.59049813620770),    FRAC_CONST(0.59269804381879),    FRAC_CONST(0.59489533633802),    FRAC_CONST(0.59708995413996),
    FRAC_CONST(0.59928183777495),    FRAC_CONST(0.60147092797329),    FRAC_CONST(0.60365716564937),    FRAC_CONST(0.60584049190582),    FRAC_CONST(0.60802084803764),
    FRAC_CONST(0.61019817553632),    FRAC_CONST(0.61237241609393),    FRAC_CONST(0.61454351160718),    FRAC_CONST(0.61671140418155),    FRAC_CONST(0.61887603613527),
    FRAC_CONST(0.62103735000336),    FRAC_CONST(0.62319528854167),    FRAC_CONST(0.62534979473088),    FRAC_CONST(0.62750081178042),    FRAC_CONST(0.62964828313250),
    FRAC_CONST(0.63179215246597),    FRAC_CONST(0.63393236370030),    FRAC_CONST(0.63606886099946),    FRAC_CONST(0.63820158877577),    FRAC_CONST(0.64033049169379),
    FRAC_CONST(0.64245551467413),    FRAC_CONST(0.64457660289729),    FRAC_CONST(0.64669370180740),    FRAC_CONST(0.64880675711607),    FRAC_CONST(0.65091571480603),
    FRAC_CONST(0.65302052113494),    FRAC_CONST(0.65512112263906),    FRAC_CONST(0.65721746613689),    FRAC_CONST(0.65930949873289),    FRAC_CONST(0.66139716782102),
    FRAC_CONST(0.66348042108842),    FRAC_CONST(0.66555920651892),    FRAC_CONST(0.66763347239664),    FRAC_CONST(0.66970316730947),    FRAC_CONST(0.67176824015260),
    FRAC_CONST(0.67382864013196),    FRAC_CONST(0.67588431676768),    FRAC_CONST(0.67793521989751),    FRAC_CONST(0.67998129968017),    FRAC_CONST(0.68202250659876),
    FRAC_CONST(0.68405879146403),    FRAC_CONST(0.68609010541774),    FRAC_CONST(0.68811639993588),    FRAC_CONST(0.69013762683195),    FRAC_CONST(0.69215373826012),
    FRAC_CONST(0.69416468671849),    FRAC_CONST(0.69617042505214),    FRAC_CONST(0.69817090645634),    FRAC_CONST(0.70016608447958),    FRAC_CONST(0.70215591302664),
    FRAC_CONST(0.70414034636163),    FRAC_CONST(0.70611933911096),    FRAC_CONST(0.70809284626630),    FRAC_CONST(0.71006082318751),    FRAC_CONST(0.71202322560554),
    FRAC_CONST(0.71398000962530),    FRAC_CONST(0.71593113172842),    FRAC_CONST(0.71787654877613),    FRAC_CONST(0.71981621801195),    FRAC_CONST(0.72175009706445),
    FRAC_CONST(0.72367814394990),    FRAC_CONST(0.72560031707496),    FRAC_CONST(0.72751657523927),    FRAC_CONST(0.72942687763803),    FRAC_CONST(0.73133118386457),
    FRAC_CONST(0.73322945391280),    FRAC_CONST(0.73512164817975),    FRAC_CONST(0.73700772746796),    FRAC_CONST(0.73888765298787),    FRAC_CONST(0.74076138636020),
    FRAC_CONST(0.74262888961827),    FRAC_CONST(0.74449012521027),    FRAC_CONST(0.74634505600152),    FRAC_CONST(0.74819364527663),    FRAC_CONST(0.75003585674175),
    FRAC_CONST(0.75187165452661),    FRAC_CONST(0.75370100318668),    FRAC_CONST(0.75552386770515),    FRAC_CONST(0.75734021349500),    FRAC_CONST(0.75915000640095),
    FRAC_CONST(0.76095321270137),    FRAC_CONST(0.76274979911019),    FRAC_CONST(0.76453973277875),    FRAC_CONST(0.76632298129757),    FRAC_CONST(0.76809951269819),
    FRAC_CONST(0.76986929545481),    FRAC_CONST(0.77163229848604),    FRAC_CONST(0.77338849115651),    FRAC_CONST(0.77513784327849),    FRAC_CONST(0.77688032511340),
    FRAC_CONST(0.77861590737340),    FRAC_CONST(0.78034456122283),    FRAC_CONST(0.78206625827961),    FRAC_CONST(0.78378097061667),    FRAC_CONST(0.78548867076330),
    FRAC_CONST(0.78718933170643),    FRAC_CONST(0.78888292689189),    FRAC_CONST(0.79056943022564),    FRAC_CONST(0.79224881607494),    FRAC_CONST(0.79392105926949),
    FRAC_CONST(0.79558613510249),    FRAC_CONST(0.79724401933170),    FRAC_CONST(0.79889468818046),    FRAC_CONST(0.80053811833858),    FRAC_CONST(0.80217428696334),
    FRAC_CONST(0.80380317168028),    FRAC_CONST(0.80542475058405),    FRAC_CONST(0.80703900223920),    FRAC_CONST(0.80864590568089),    FRAC_CONST(0.81024544041560),
    FRAC_CONST(0.81183758642175),    FRAC_CONST(0.81342232415032),    FRAC_CONST(0.81499963452540),    FRAC_CONST(0.81656949894467),    FRAC_CONST(0.81813189927991),
    FRAC_CONST(0.81968681787738),    FRAC_CONST(0.82123423755821),    FRAC_CONST(0.82277414161874),    FRAC_CONST(0.82430651383076),    FRAC_CONST(0.82583133844180),
    FRAC_CONST(0.82734860017528),    FRAC_CONST(0.82885828423070),    FRAC_CONST(0.83036037628369),    FRAC_CONST(0.83185486248609),    FRAC_CONST(0.83334172946597),
    FRAC_CONST(0.83482096432759),    FRAC_CONST(0.83629255465130),    FRAC_CONST(0.83775648849344),    FRAC_CONST(0.83921275438615),    FRAC_CONST(0.84066134133716),
    FRAC_CONST(0.84210223882952),    FRAC_CONST(0.84353543682130),    FRAC_CONST(0.84496092574524),    FRAC_CONST(0.84637869650833),    FRAC_CONST(0.84778874049138),
    FRAC_CONST(0.84919104954855),    FRAC_CONST(0.85058561600677),    FRAC_CONST(0.85197243266520),    FRAC_CONST(0.85335149279457),    FRAC_CONST(0.85472279013653),
    FRAC_CONST(0.85608631890295),    FRAC_CONST(0.85744207377513),    FRAC_CONST(0.85879004990298),    FRAC_CONST(0.86013024290422),    FRAC_CONST(0.86146264886346),
    FRAC_CONST(0.86278726433124),    FRAC_CONST(0.86410408632306),    FRAC_CONST(0.86541311231838),    FRAC_CONST(0.86671434025950),    FRAC_CONST(0.86800776855046),
    FRAC_CONST(0.86929339605590),    FRAC_CONST(0.87057122209981),    FRAC_CONST(0.87184124646433),    FRAC_CONST(0.87310346938840),    FRAC_CONST(0.87435789156650),
    FRAC_CONST(0.87560451414719),    FRAC_CONST(0.87684333873173),    FRAC_CONST(0.87807436737261),    FRAC_CONST(0.87929760257204),    FRAC_CONST(0.88051304728038),
    FRAC_CONST(0.88172070489456),    FRAC_CONST(0.88292057925645),    FRAC_CONST(0.88411267465117),    FRAC_CONST(0.88529699580537),    FRAC_CONST(0.88647354788545),
    FRAC_CONST(0.88764233649580),    FRAC_CONST(0.88880336767692),    FRAC_CONST(0.88995664790351),    FRAC_CONST(0.89110218408260),    FRAC_CONST(0.89223998355154),
    FRAC_CONST(0.89337005407600),    FRAC_CONST(0.89449240384793),    FRAC_CONST(0.89560704148345),    FRAC_CONST(0.89671397602074),    FRAC_CONST(0.89781321691786),
    FRAC_CONST(0.89890477405053),    FRAC_CONST(0.89998865770993),    FRAC_CONST(0.90106487860034),    FRAC_CONST(0.90213344783689),    FRAC_CONST(0.90319437694315),
    FRAC_CONST(0.90424767784873),    FRAC_CONST(0.90529336288690),    FRAC_CONST(0.90633144479201),    FRAC_CONST(0.90736193669708),    FRAC_CONST(0.90838485213119),
    FRAC_CONST(0.90940020501694),    FRAC_CONST(0.91040800966776),    FRAC_CONST(0.91140828078533),    FRAC_CONST(0.91240103345685),    FRAC_CONST(0.91338628315231),
    FRAC_CONST(0.91436404572173),    FRAC_CONST(0.91533433739238),    FRAC_CONST(0.91629717476594),    FRAC_CONST(0.91725257481564),    FRAC_CONST(0.91820055488334),
    FRAC_CONST(0.91914113267664),    FRAC_CONST(0.92007432626589),    FRAC_CONST(0.92100015408120),    FRAC_CONST(0.92191863490944),    FRAC_CONST(0.92282978789113),
    FRAC_CONST(0.92373363251740),    FRAC_CONST(0.92463018862687),    FRAC_CONST(0.92551947640245),    FRAC_CONST(0.92640151636824),    FRAC_CONST(0.92727632938624),
    FRAC_CONST(0.92814393665320),    FRAC_CONST(0.92900435969727),    FRAC_CONST(0.92985762037477),    FRAC_CONST(0.93070374086684),    FRAC_CONST(0.93154274367610),
    FRAC_CONST(0.93237465162328),    FRAC_CONST(0.93319948784382),    FRAC_CONST(0.93401727578443),    FRAC_CONST(0.93482803919967),    FRAC_CONST(0.93563180214841),
    FRAC_CONST(0.93642858899043),    FRAC_CONST(0.93721842438279),    FRAC_CONST(0.93800133327637),    FRAC_CONST(0.93877734091223),    FRAC_CONST(0.93954647281807),
    FRAC_CONST(0.94030875480458),    FRAC_CONST(0.94106421296182),    FRAC_CONST(0.94181287365556),    FRAC_CONST(0.94255476352362),    FRAC_CONST(0.94328990947213),
    FRAC_CONST(0.94401833867184),    FRAC_CONST(0.94474007855439),    FRAC_CONST(0.94545515680855),    FRAC_CONST(0.94616360137644),    FRAC_CONST(0.94686544044975),
    FRAC_CONST(0.94756070246592),    FRAC_CONST(0.94824941610434),    FRAC_CONST(0.94893161028248),    FRAC_CONST(0.94960731415209),    FRAC_CONST(0.95027655709525),
    FRAC_CONST(0.95093936872056),    FRAC_CONST(0.95159577885924),    FRAC_CONST(0.95224581756115),    FRAC_CONST(0.95288951509097),    FRAC_CONST(0.95352690192417),
    FRAC_CONST(0.95415800874314),    FRAC_CONST(0.95478286643320),    FRAC_CONST(0.95540150607863),    FRAC_CONST(0.95601395895871),    FRAC_CONST(0.95662025654373),
    FRAC_CONST(0.95722043049100),    FRAC_CONST(0.95781451264084),    FRAC_CONST(0.95840253501260),    FRAC_CONST(0.95898452980058),    FRAC_CONST(0.95956052937008),
    FRAC_CONST(0.96013056625336),    FRAC_CONST(0.96069467314557),    FRAC_CONST(0.96125288290073),    FRAC_CONST(0.96180522852773),    FRAC_CONST(0.96235174318622),
    FRAC_CONST(0.96289246018262),    FRAC_CONST(0.96342741296604),    FRAC_CONST(0.96395663512424),    FRAC_CONST(0.96448016037959),    FRAC_CONST(0.96499802258499),
    FRAC_CONST(0.96551025571985),    FRAC_CONST(0.96601689388602),    FRAC_CONST(0.96651797130376),    FRAC_CONST(0.96701352230768),    FRAC_CONST(0.96750358134269),
    FRAC_CONST(0.96798818295998),    FRAC_CONST(0.96846736181297),    FRAC_CONST(0.96894115265327),    FRAC_CONST(0.96940959032667),    FRAC_CONST(0.96987270976912),
    FRAC_CONST(0.97033054600270),    FRAC_CONST(0.97078313413161),    FRAC_CONST(0.97123050933818),    FRAC_CONST(0.97167270687887),    FRAC_CONST(0.97210976208030),
    FRAC_CONST(0.97254171033525),    FRAC_CONST(0.97296858709871),    FRAC_CONST(0.97339042788392),    FRAC_CONST(0.97380726825843),    FRAC_CONST(0.97421914384017),
    FRAC_CONST(0.97462609029350),    FRAC_CONST(0.97502814332534),    FRAC_CONST(0.97542533868127),    FRAC_CONST(0.97581771214160),    FRAC_CONST(0.97620529951759),
    FRAC_CONST(0.97658813664749),    FRAC_CONST(0.97696625939282),    FRAC_CONST(0.97733970363445),    FRAC_CONST(0.97770850526884),    FRAC_CONST(0.97807270020427),
    FRAC_CONST(0.97843232435704),    FRAC_CONST(0.97878741364771),    FRAC_CONST(0.97913800399743),    FRAC_CONST(0.97948413132414),    FRAC_CONST(0.97982583153895),
    FRAC_CONST(0.98016314054243),    FRAC_CONST(0.98049609422096),    FRAC_CONST(0.98082472844313),    FRAC_CONST(0.98114907905608),    FRAC_CONST(0.98146918188197),
    FRAC_CONST(0.98178507271438),    FRAC_CONST(0.98209678731477),    FRAC_CONST(0.98240436140902),    FRAC_CONST(0.98270783068385),    FRAC_CONST(0.98300723078342),
    FRAC_CONST(0.98330259730589),    FRAC_CONST(0.98359396579995),    FRAC_CONST(0.98388137176152),    FRAC_CONST(0.98416485063031),    FRAC_CONST(0.98444443778651),
    FRAC_CONST(0.98472016854752),    FRAC_CONST(0.98499207816463),    FRAC_CONST(0.98526020181980),    FRAC_CONST(0.98552457462240),    FRAC_CONST(0.98578523160609),
    FRAC_CONST(0.98604220772560),    FRAC_CONST(0.98629553785362),    FRAC_CONST(0.98654525677772),    FRAC_CONST(0.98679139919726),    FRAC_CONST(0.98703399972035),
    FRAC_CONST(0.98727309286089),    FRAC_CONST(0.98750871303556),    FRAC_CONST(0.98774089456089),    FRAC_CONST(0.98796967165036),    FRAC_CONST(0.98819507841154),
    FRAC_CONST(0.98841714884323),    FRAC_CONST(0.98863591683269),    FRAC_CONST(0.98885141615285),    FRAC_CONST(0.98906368045957),    FRAC_CONST(0.98927274328896),
    FRAC_CONST(0.98947863805473),    FRAC_CONST(0.98968139804554),    FRAC_CONST(0.98988105642241),    FRAC_CONST(0.99007764621618),    FRAC_CONST(0.99027120032501),
    FRAC_CONST(0.99046175151186),    FRAC_CONST(0.99064933240208),    FRAC_CONST(0.99083397548099),    FRAC_CONST(0.99101571309153),    FRAC_CONST(0.99119457743191),
    FRAC_CONST(0.99137060055337),    FRAC_CONST(0.99154381435784),    FRAC_CONST(0.99171425059582),    FRAC_CONST(0.99188194086414),    FRAC_CONST(0.99204691660388),
    FRAC_CONST(0.99220920909823),    FRAC_CONST(0.99236884947045),    FRAC_CONST(0.99252586868186),    FRAC_CONST(0.99268029752989),    FRAC_CONST(0.99283216664606),
    FRAC_CONST(0.99298150649419),    FRAC_CONST(0.99312834736847),    FRAC_CONST(0.99327271939167),    FRAC_CONST(0.99341465251338),    FRAC_CONST(0.99355417650825),
    FRAC_CONST(0.99369132097430),    FRAC_CONST(0.99382611533130),    FRAC_CONST(0.99395858881910),    FRAC_CONST(0.99408877049612),    FRAC_CONST(0.99421668923778),
    FRAC_CONST(0.99434237373503),    FRAC_CONST(0.99446585249289),    FRAC_CONST(0.99458715382906),    FRAC_CONST(0.99470630587254),    FRAC_CONST(0.99482333656229),
    FRAC_CONST(0.99493827364600),    FRAC_CONST(0.99505114467878),    FRAC_CONST(0.99516197702200),    FRAC_CONST(0.99527079784214),    FRAC_CONST(0.99537763410962),
    FRAC_CONST(0.99548251259777),    FRAC_CONST(0.99558545988178),    FRAC_CONST(0.99568650233767),    FRAC_CONST(0.99578566614138),    FRAC_CONST(0.99588297726783),
    FRAC_CONST(0.99597846149005),    FRAC_CONST(0.99607214437834),    FRAC_CONST(0.99616405129947),    FRAC_CONST(0.99625420741595),    FRAC_CONST(0.99634263768527),
    FRAC_CONST(0.99642936685928),    FRAC_CONST(0.99651441948352),    FRAC_CONST(0.99659781989663),    FRAC_CONST(0.99667959222978),    FRAC_CONST(0.99675976040620),
    FRAC_CONST(0.99683834814063),    FRAC_CONST(0.99691537893895),    FRAC_CONST(0.99699087609774),    FRAC_CONST(0.99706486270391),    FRAC_CONST(0.99713736163442),
    FRAC_CONST(0.99720839555593),    FRAC_CONST(0.99727798692461),    FRAC_CONST(0.99734615798589),    FRAC_CONST(0.99741293077431),    FRAC_CONST(0.99747832711337),
    FRAC_CONST(0.99754236861541),    FRAC_CONST(0.99760507668158),    FRAC_CONST(0.99766647250181),    FRAC_CONST(0.99772657705478),    FRAC_CONST(0.99778541110799),
    FRAC_CONST(0.99784299521785),    FRAC_CONST(0.99789934972976),    FRAC_CONST(0.99795449477828),    FRAC_CONST(0.99800845028730),    FRAC_CONST(0.99806123597027),
    FRAC_CONST(0.99811287133042),    FRAC_CONST(0.99816337566108),    FRAC_CONST(0.99821276804596),    FRAC_CONST(0.99826106735952),    FRAC_CONST(0.99830829226732),
    FRAC_CONST(0.99835446122649),    FRAC_CONST(0.99839959248609),    FRAC_CONST(0.99844370408765),    FRAC_CONST(0.99848681386566),    FRAC_CONST(0.99852893944805),
    FRAC_CONST(0.99857009825685),    FRAC_CONST(0.99861030750869),    FRAC_CONST(0.99864958421549),    FRAC_CONST(0.99868794518504),    FRAC_CONST(0.99872540702178),
    FRAC_CONST(0.99876198612738),    FRAC_CONST(0.99879769870160),    FRAC_CONST(0.99883256074295),    FRAC_CONST(0.99886658804953),    FRAC_CONST(0.99889979621983),
    FRAC_CONST(0.99893220065356),    FRAC_CONST(0.99896381655254),    FRAC_CONST(0.99899465892154),    FRAC_CONST(0.99902474256924),    FRAC_CONST(0.99905408210916),
    FRAC_CONST(0.99908269196056),    FRAC_CONST(0.99911058634952),    FRAC_CONST(0.99913777930986),    FRAC_CONST(0.99916428468421),    FRAC_CONST(0.99919011612505),
    FRAC_CONST(0.99921528709576),    FRAC_CONST(0.99923981087174),    FRAC_CONST(0.99926370054150),    FRAC_CONST(0.99928696900779),    FRAC_CONST(0.99930962898876),
    FRAC_CONST(0.99933169301910),    FRAC_CONST(0.99935317345126),    FRAC_CONST(0.99937408245662),    FRAC_CONST(0.99939443202674),    FRAC_CONST(0.99941423397457),
    FRAC_CONST(0.99943349993572),    FRAC_CONST(0.99945224136972),    FRAC_CONST(0.99947046956130),    FRAC_CONST(0.99948819562171),    FRAC_CONST(0.99950543049000),
    FRAC_CONST(0.99952218493439),    FRAC_CONST(0.99953846955355),    FRAC_CONST(0.99955429477803),    FRAC_CONST(0.99956967087154),    FRAC_CONST(0.99958460793242),
    FRAC_CONST(0.99959911589494),    FRAC_CONST(0.99961320453077),    FRAC_CONST(0.99962688345035),    FRAC_CONST(0.99964016210433),    FRAC_CONST(0.99965304978499),
    FRAC_CONST(0.99966555562769),    FRAC_CONST(0.99967768861231),    FRAC_CONST(0.99968945756473),    FRAC_CONST(0.99970087115825),    FRAC_CONST(0.99971193791510),
    FRAC_CONST(0.99972266620792),    FRAC_CONST(0.99973306426121),    FRAC_CONST(0.99974314015288),    FRAC_CONST(0.99975290181568),    FRAC_CONST(0.99976235703876),
    FRAC_CONST(0.99977151346914),    FRAC_CONST(0.99978037861326),    FRAC_CONST(0.99978895983845),    FRAC_CONST(0.99979726437448),    FRAC_CONST(0.99980529931507),
    FRAC_CONST(0.99981307161943),    FRAC_CONST(0.99982058811377),    FRAC_CONST(0.99982785549283),    FRAC_CONST(0.99983488032144),    FRAC_CONST(0.99984166903600),
    FRAC_CONST(0.99984822794606),    FRAC_CONST(0.99985456323584),    FRAC_CONST(0.99986068096572),    FRAC_CONST(0.99986658707386),    FRAC_CONST(0.99987228737764),
    FRAC_CONST(0.99987778757524),    FRAC_CONST(0.99988309324717),    FRAC_CONST(0.99988820985777),    FRAC_CONST(0.99989314275675),    FRAC_CONST(0.99989789718072),
    FRAC_CONST(0.99990247825468),    FRAC_CONST(0.99990689099357),    FRAC_CONST(0.99991114030376),    FRAC_CONST(0.99991523098456),    FRAC_CONST(0.99991916772971),
    FRAC_CONST(0.99992295512891),    FRAC_CONST(0.99992659766930),    FRAC_CONST(0.99993009973692),    FRAC_CONST(0.99993346561824),    FRAC_CONST(0.99993669950161),
    FRAC_CONST(0.99993980547870),    FRAC_CONST(0.99994278754604),    FRAC_CONST(0.99994564960642),    FRAC_CONST(0.99994839547033),    FRAC_CONST(0.99995102885747),
    FRAC_CONST(0.99995355339809),    FRAC_CONST(0.99995597263451),    FRAC_CONST(0.99995829002249),    FRAC_CONST(0.99996050893264),    FRAC_CONST(0.99996263265183),
    FRAC_CONST(0.99996466438460),    FRAC_CONST(0.99996660725452),    FRAC_CONST(0.99996846430558),    FRAC_CONST(0.99997023850356),    FRAC_CONST(0.99997193273736),
    FRAC_CONST(0.99997354982037),    FRAC_CONST(0.99997509249183),    FRAC_CONST(0.99997656341810),    FRAC_CONST(0.99997796519400),    FRAC_CONST(0.99997930034415),
    FRAC_CONST(0.99998057132421),    FRAC_CONST(0.99998178052220),    FRAC_CONST(0.99998293025975),    FRAC_CONST(0.99998402279338),    FRAC_CONST(0.99998506031574),
    FRAC_CONST(0.99998604495686),    FRAC_CONST(0.99998697878536),    FRAC_CONST(0.99998786380966),    FRAC_CONST(0.99998870197921),    FRAC_CONST(0.99998949518567),
    FRAC_CONST(0.99999024526408),    FRAC_CONST(0.99999095399401),    FRAC_CONST(0.99999162310077),    FRAC_CONST(0.99999225425649),    FRAC_CONST(0.99999284908128),
    FRAC_CONST(0.99999340914435),    FRAC_CONST(0.99999393596510),    FRAC_CONST(0.99999443101421),    FRAC_CONST(0.99999489571473),    FRAC_CONST(0.99999533144314),
    FRAC_CONST(0.99999573953040),    FRAC_CONST(0.99999612126300),    FRAC_CONST(0.99999647788395),    FRAC_CONST(0.99999681059383),    FRAC_CONST(0.99999712055178),
    FRAC_CONST(0.99999740887647),    FRAC_CONST(0.99999767664709),    FRAC_CONST(0.99999792490431),    FRAC_CONST(0.99999815465123),    FRAC_CONST(0.99999836685427),
    FRAC_CONST(0.99999856244415),    FRAC_CONST(0.99999874231676),    FRAC_CONST(0.99999890733405),    FRAC_CONST(0.99999905832493),    FRAC_CONST(0.99999919608613),
    FRAC_CONST(0.99999932138304),    FRAC_CONST(0.99999943495056),    FRAC_CONST(0.99999953749392),    FRAC_CONST(0.99999962968950),    FRAC_CONST(0.99999971218563),
    FRAC_CONST(0.99999978560337),    FRAC_CONST(0.99999985053727),    FRAC_CONST(0.99999990755616),    FRAC_CONST(0.99999995720387),
};

#ifdef ALLOW_SMALL_FRAMELENGTH
 const int32_t kbd_long_960[] = {
    FRAC_CONST(0.0003021562530949), FRAC_CONST(0.0004452267024786), FRAC_CONST(0.0005674947527496), FRAC_CONST(0.0006812465553466), FRAC_CONST(0.0007910496776387), FRAC_CONST(0.0008991655033895),
    FRAC_CONST(0.0010068978259384), FRAC_CONST(0.0011150758515751), FRAC_CONST(0.0012242653193642), FRAC_CONST(0.0013348735658205), FRAC_CONST(0.0014472068670273), FRAC_CONST(0.0015615039850448),
    FRAC_CONST(0.0016779568885263), FRAC_CONST(0.0017967241232412), FRAC_CONST(0.0019179397560955), FRAC_CONST(0.0020417195415393), FRAC_CONST(0.0021681652836642), FRAC_CONST(0.0022973679910599),
    FRAC_CONST(0.0024294102029937), FRAC_CONST(0.0025643677339078), FRAC_CONST(0.0027023110014772), FRAC_CONST(0.0028433060512612), FRAC_CONST(0.0029874153568025), FRAC_CONST(0.0031346984511728),
    FRAC_CONST(0.0032852124303662), FRAC_CONST(0.0034390123581190), FRAC_CONST(0.0035961515940931), FRAC_CONST(0.0037566820618961), FRAC_CONST(0.0039206544694386), FRAC_CONST(0.0040881184912194),
    FRAC_CONST(0.0042591229199617), FRAC_CONST(0.0044337157933972), FRAC_CONST(0.0046119445007641), FRAC_CONST(0.0047938558726415), FRAC_CONST(0.0049794962570131), FRAC_CONST(0.0051689115838900),
    FRAC_CONST(0.0053621474203763), FRAC_CONST(0.0055592490177131), FRAC_CONST(0.0057602613515573), FRAC_CONST(0.0059652291565289), FRAC_CONST(0.0061741969558843), FRAC_CONST(0.0063872090870253),
    FRAC_CONST(0.0066043097234387), FRAC_CONST(0.0068255428935640), FRAC_CONST(0.0070509524970088), FRAC_CONST(0.0072805823184660), FRAC_CONST(0.0075144760396340), FRAC_CONST(0.0077526772493942),
    FRAC_CONST(0.0079952294524673), FRAC_CONST(0.0082421760767325), FRAC_CONST(0.0084935604793733), FRAC_CONST(0.0087494259519870), FRAC_CONST(0.0090098157247792), FRAC_CONST(0.0092747729699467),
    FRAC_CONST(0.0095443408043399), FRAC_CONST(0.0098185622914832), FRAC_CONST(0.0100974804430226), FRAC_CONST(0.0103811382196612), FRAC_CONST(0.0106695785316351), FRAC_CONST(0.0109628442387771),
    FRAC_CONST(0.0112609781502091), FRAC_CONST(0.0115640230236993), FRAC_CONST(0.0118720215647169), FRAC_CONST(0.0121850164252137), FRAC_CONST(0.0125030502021561), FRAC_CONST(0.0128261654358321),
    FRAC_CONST(0.0131544046079532), FRAC_CONST(0.0134878101395681), FRAC_CONST(0.0138264243888068), FRAC_CONST(0.0141702896484671), FRAC_CONST(0.0145194481434592), FRAC_CONST(0.0148739420281182),
    FRAC_CONST(0.0152338133833959), FRAC_CONST(0.0155991042139432), FRAC_CONST(0.0159698564450882), FRAC_CONST(0.0163461119197227), FRAC_CONST(0.0167279123950996), FRAC_CONST(0.0171152995395520),
    FRAC_CONST(0.0175083149291368), FRAC_CONST(0.0179070000442104), FRAC_CONST(0.0183113962659409), FRAC_CONST(0.0187215448727609), FRAC_CONST(0.0191374870367659), FRAC_CONST(0.0195592638200623),
    FRAC_CONST(0.0199869161710679), FRAC_CONST(0.0204204849207691), FRAC_CONST(0.0208600107789370), FRAC_CONST(0.0213055343303066), FRAC_CONST(0.0217570960307201), FRAC_CONST(0.0222147362032386),
    FRAC_CONST(0.0226784950342228), FRAC_CONST(0.0231484125693867), FRAC_CONST(0.0236245287098244), FRAC_CONST(0.0241068832080138), FRAC_CONST(0.0245955156637973), FRAC_CONST(0.0250904655203431),
    FRAC_CONST(0.0255917720600868), FRAC_CONST(0.0260994744006559), FRAC_CONST(0.0266136114907790), FRAC_CONST(0.0271342221061795), FRAC_CONST(0.0276613448454576), FRAC_CONST(0.0281950181259587),
    FRAC_CONST(0.0287352801796329), FRAC_CONST(0.0292821690488833), FRAC_CONST(0.0298357225824074), FRAC_CONST(0.0303959784310299), FRAC_CONST(0.0309629740435296), FRAC_CONST(0.0315367466624615),
    FRAC_CONST(0.0321173333199732), FRAC_CONST(0.0327047708336193), FRAC_CONST(0.0332990958021720), FRAC_CONST(0.0339003446014307), FRAC_CONST(0.0345085533800302), FRAC_CONST(0.0351237580552491),
    FRAC_CONST(0.0357459943088193), FRAC_CONST(0.0363752975827358), FRAC_CONST(0.0370117030750704), FRAC_CONST(0.0376552457357870), FRAC_CONST(0.0383059602625614), FRAC_CONST(0.0389638810966056),
    FRAC_CONST(0.0396290424184964), FRAC_CONST(0.0403014781440112), FRAC_CONST(0.0409812219199691), FRAC_CONST(0.0416683071200799), FRAC_CONST(0.0423627668408009), FRAC_CONST(0.0430646338972016),
    FRAC_CONST(0.0437739408188385), FRAC_CONST(0.0444907198456388), FRAC_CONST(0.0452150029237951), FRAC_CONST(0.0459468217016708), FRAC_CONST(0.0466862075257170), FRAC_CONST(0.0474331914364021),
    FRAC_CONST(0.0481878041641539), FRAC_CONST(0.0489500761253148), FRAC_CONST(0.0497200374181119), FRAC_CONST(0.0504977178186404), FRAC_CONST(0.0512831467768636), FRAC_CONST(0.0520763534126273),
    FRAC_CONST(0.0528773665116913), FRAC_CONST(0.0536862145217772), FRAC_CONST(0.0545029255486345), FRAC_CONST(0.0553275273521232), FRAC_CONST(0.0561600473423164), FRAC_CONST(0.0570005125756209),
    FRAC_CONST(0.0578489497509179), FRAC_CONST(0.0587053852057233), FRAC_CONST(0.0595698449123695), FRAC_CONST(0.0604423544742077), FRAC_CONST(0.0613229391218317), FRAC_CONST(0.0622116237093247),
    FRAC_CONST(0.0631084327105284), FRAC_CONST(0.0640133902153352), FRAC_CONST(0.0649265199260043), FRAC_CONST(0.0658478451535027), FRAC_CONST(0.0667773888138695), FRAC_CONST(0.0677151734246072),
    FRAC_CONST(0.0686612211010977), FRAC_CONST(0.0696155535530446), FRAC_CONST(0.0705781920809429), FRAC_CONST(0.0715491575725758), FRAC_CONST(0.0725284704995383), FRAC_CONST(0.0735161509137906),
    FRAC_CONST(0.0745122184442388), FRAC_CONST(0.0755166922933461), FRAC_CONST(0.0765295912337720), FRAC_CONST(0.0775509336050437), FRAC_CONST(0.0785807373102561), FRAC_CONST(0.0796190198128044),
    FRAC_CONST(0.0806657981331473), FRAC_CONST(0.0817210888456026), FRAC_CONST(0.0827849080751753), FRAC_CONST(0.0838572714944183), FRAC_CONST(0.0849381943203265), FRAC_CONST(0.0860276913112652),
    FRAC_CONST(0.0871257767639319), FRAC_CONST(0.0882324645103534), FRAC_CONST(0.0893477679149177), FRAC_CONST(0.0904716998714418), FRAC_CONST(0.0916042728002747), FRAC_CONST(0.0927454986454381),
    FRAC_CONST(0.0938953888718020), FRAC_CONST(0.0950539544622996), FRAC_CONST(0.0962212059151784), FRAC_CONST(0.0973971532412897), FRAC_CONST(0.0985818059614169), FRAC_CONST(0.0997751731036425),
    FRAC_CONST(0.1009772632007537), FRAC_CONST(0.1021880842876888), FRAC_CONST(0.1034076438990227), FRAC_CONST(0.1046359490664932), FRAC_CONST(0.1058730063165681), FRAC_CONST(0.1071188216680533),
    FRAC_CONST(0.1083734006297428), FRAC_CONST(0.1096367481981100), FRAC_CONST(0.1109088688550422), FRAC_CONST(0.1121897665656167), FRAC_CONST(0.1134794447759207), FRAC_CONST(0.1147779064109143),
    FRAC_CONST(0.1160851538723372), FRAC_CONST(0.1174011890366591), FRAC_CONST(0.1187260132530751), FRAC_CONST(0.1200596273415457), FRAC_CONST(0.1214020315908810), FRAC_CONST(0.1227532257568719),
    FRAC_CONST(0.1241132090604651), FRAC_CONST(0.1254819801859856), FRAC_CONST(0.1268595372794049), FRAC_CONST(0.1282458779466558), FRAC_CONST(0.1296409992519942), FRAC_CONST(0.1310448977164081),
    FRAC_CONST(0.1324575693160745), FRAC_CONST(0.1338790094808633), FRAC_CONST(0.1353092130928902), FRAC_CONST(0.1367481744851168), FRAC_CONST(0.1381958874400010), FRAC_CONST(0.1396523451881945),
    FRAC_CONST(0.1411175404072910), FRAC_CONST(0.1425914652206223), FRAC_CONST(0.1440741111961058), FRAC_CONST(0.1455654693451402), FRAC_CONST(0.1470655301215526), FRAC_CONST(0.1485742834205956),
    FRAC_CONST(0.1500917185779945), FRAC_CONST(0.1516178243690463), FRAC_CONST(0.1531525890077689), FRAC_CONST(0.1546960001461024), FRAC_CONST(0.1562480448731608), FRAC_CONST(0.1578087097145364),
    FRAC_CONST(0.1593779806316558), FRAC_CONST(0.1609558430211876), FRAC_CONST(0.1625422817145027), FRAC_CONST(0.1641372809771871), FRAC_CONST(0.1657408245086070), FRAC_CONST(0.1673528954415270),
    FRAC_CONST(0.1689734763417811), FRAC_CONST(0.1706025492079969), FRAC_CONST(0.1722400954713725), FRAC_CONST(0.1738860959955082), FRAC_CONST(0.1755405310762898), FRAC_CONST(0.1772033804418275),
    FRAC_CONST(0.1788746232524467), FRAC_CONST(0.1805542381007349), FRAC_CONST(0.1822422030116404), FRAC_CONST(0.1839384954426268), FRAC_CONST(0.1856430922838810), FRAC_CONST(0.1873559698585756),
    FRAC_CONST(0.1890771039231862), FRAC_CONST(0.1908064696678625), FRAC_CONST(0.1925440417168546), FRAC_CONST(0.1942897941289937), FRAC_CONST(0.1960437003982277), FRAC_CONST(0.1978057334542116),
    FRAC_CONST(0.1995758656629525), FRAC_CONST(0.2013540688275098), FRAC_CONST(0.2031403141887507), FRAC_CONST(0.2049345724261595), FRAC_CONST(0.2067368136587033), FRAC_CONST(0.2085470074457521),
    FRAC_CONST(0.2103651227880538), FRAC_CONST(0.2121911281287646), FRAC_CONST(0.2140249913545346), FRAC_CONST(0.2158666797966480), FRAC_CONST(0.2177161602322188), FRAC_CONST(0.2195733988854414),
    FRAC_CONST(0.2214383614288963), FRAC_CONST(0.2233110129849106), FRAC_CONST(0.2251913181269740), FRAC_CONST(0.2270792408812093), FRAC_CONST(0.2289747447278976), FRAC_CONST(0.2308777926030592),
    FRAC_CONST(0.2327883469000885), FRAC_CONST(0.2347063694714437), FRAC_CONST(0.2366318216303919), FRAC_CONST(0.2385646641528076), FRAC_CONST(0.2405048572790267), FRAC_CONST(0.2424523607157545),
    FRAC_CONST(0.2444071336380283), FRAC_CONST(0.2463691346912334), FRAC_CONST(0.2483383219931741), FRAC_CONST(0.2503146531361985), FRAC_CONST(0.2522980851893767), FRAC_CONST(0.2542885747007335),
    FRAC_CONST(0.2562860776995335), FRAC_CONST(0.2582905496986215), FRAC_CONST(0.2603019456968142), FRAC_CONST(0.2623202201813464), FRAC_CONST(0.2643453271303700), FRAC_CONST(0.2663772200155053),
    FRAC_CONST(0.2684158518044454), FRAC_CONST(0.2704611749636135), FRAC_CONST(0.2725131414608710), FRAC_CONST(0.2745717027682799), FRAC_CONST(0.2766368098649151), FRAC_CONST(0.2787084132397296),
    FRAC_CONST(0.2807864628944707), FRAC_CONST(0.2828709083466482), FRAC_CONST(0.2849616986325523), FRAC_CONST(0.2870587823103237), FRAC_CONST(0.2891621074630737), FRAC_CONST(0.2912716217020546),
    FRAC_CONST(0.2933872721698803), FRAC_CONST(0.2955090055437973), FRAC_CONST(0.2976367680390041), FRAC_CONST(0.2997705054120213), FRAC_CONST(0.3019101629641097), FRAC_CONST(0.3040556855447379),
    FRAC_CONST(0.3062070175550981), FRAC_CONST(0.3083641029516701), FRAC_CONST(0.3105268852498334), FRAC_CONST(0.3126953075275265), FRAC_CONST(0.3148693124289546), FRAC_CONST(0.3170488421683428),
    FRAC_CONST(0.3192338385337370), FRAC_CONST(0.3214242428908514), FRAC_CONST(0.3236199961869606), FRAC_CONST(0.3258210389548392), FRAC_CONST(0.3280273113167459), FRAC_CONST(0.3302387529884521),
    FRAC_CONST(0.3324553032833160), FRAC_CONST(0.3346769011164010), FRAC_CONST(0.3369034850086373), FRAC_CONST(0.3391349930910280), FRAC_CONST(0.3413713631088974), FRAC_CONST(0.3436125324261830),
    FRAC_CONST(0.3458584380297697), FRAC_CONST(0.3481090165338656), FRAC_CONST(0.3503642041844199), FRAC_CONST(0.3526239368635820), FRAC_CONST(0.3548881500942010), FRAC_CONST(0.3571567790443668),
    FRAC_CONST(0.3594297585319891), FRAC_CONST(0.3617070230294185), FRAC_CONST(0.3639885066681048), FRAC_CONST(0.3662741432432950), FRAC_CONST(0.3685638662187693), FRAC_CONST(0.3708576087316147),
    FRAC_CONST(0.3731553035970366), FRAC_CONST(0.3754568833132069), FRAC_CONST(0.3777622800661488), FRAC_CONST(0.3800714257346570), FRAC_CONST(0.3823842518952546), FRAC_CONST(0.3847006898271841),
    FRAC_CONST(0.3870206705174334), FRAC_CONST(0.3893441246657958), FRAC_CONST(0.3916709826899639), FRAC_CONST(0.3940011747306560), FRAC_CONST(0.3963346306567764), FRAC_CONST(0.3986712800706062),
    FRAC_CONST(0.4010110523130271), FRAC_CONST(0.4033538764687756), FRAC_CONST(0.4056996813717284), FRAC_CONST(0.4080483956102172), FRAC_CONST(0.4103999475323736), FRAC_CONST(0.4127542652515031),
    FRAC_CONST(0.4151112766514873), FRAC_CONST(0.4174709093922143), FRAC_CONST(0.4198330909150365), FRAC_CONST(0.4221977484482556), FRAC_CONST(0.4245648090126334), FRAC_CONST(0.4269341994269293),
    FRAC_CONST(0.4293058463134616), FRAC_CONST(0.4316796761036958), FRAC_CONST(0.4340556150438547), FRAC_CONST(0.4364335892005536), FRAC_CONST(0.4388135244664580), FRAC_CONST(0.4411953465659639),
    FRAC_CONST(0.4435789810609000), FRAC_CONST(0.4459643533562509), FRAC_CONST(0.4483513887059016), FRAC_CONST(0.4507400122184019), FRAC_CONST(0.4531301488627497), FRAC_CONST(0.4555217234741947),
    FRAC_CONST(0.4579146607600593), FRAC_CONST(0.4603088853055777), FRAC_CONST(0.4627043215797521), FRAC_CONST(0.4651008939412254), FRAC_CONST(0.4674985266441709), FRAC_CONST(0.4698971438441951),
    FRAC_CONST(0.4722966696042580), FRAC_CONST(0.4746970279006055), FRAC_CONST(0.4770981426287164), FRAC_CONST(0.4794999376092619), FRAC_CONST(0.4819023365940778), FRAC_CONST(0.4843052632721476),
    FRAC_CONST(0.4867086412755978), FRAC_CONST(0.4891123941857028), FRAC_CONST(0.4915164455388997), FRAC_CONST(0.4939207188328126), FRAC_CONST(0.4963251375322855), FRAC_CONST(0.4987296250754225),
    FRAC_CONST(0.5011341048796359), FRAC_CONST(0.5035385003477012), FRAC_CONST(0.5059427348738168), FRAC_CONST(0.5083467318496706), FRAC_CONST(0.5107504146705106), FRAC_CONST(0.5131537067412193),
    FRAC_CONST(0.5155565314823923), FRAC_CONST(0.5179588123364193), FRAC_CONST(0.5203604727735667), FRAC_CONST(0.5227614362980630), FRAC_CONST(0.5251616264541841), FRAC_CONST(0.5275609668323384),
    FRAC_CONST(0.5299593810751532), FRAC_CONST(0.5323567928835578), FRAC_CONST(0.5347531260228663), FRAC_CONST(0.5371483043288580), FRAC_CONST(0.5395422517138538), FRAC_CONST(0.5419348921727899),
    FRAC_CONST(0.5443261497892862), FRAC_CONST(0.5467159487417104), FRAC_CONST(0.5491042133092364), FRAC_CONST(0.5514908678778958), FRAC_CONST(0.5538758369466227), FRAC_CONST(0.5562590451332913),
    FRAC_CONST(0.5586404171807443), FRAC_CONST(0.5610198779628133), FRAC_CONST(0.5633973524903286), FRAC_CONST(0.5657727659171199), FRAC_CONST(0.5681460435460047), FRAC_CONST(0.5705171108347663),
    FRAC_CONST(0.5728858934021188), FRAC_CONST(0.5752523170336598), FRAC_CONST(0.5776163076878088), FRAC_CONST(0.5799777915017323), FRAC_CONST(0.5823366947972535), FRAC_CONST(0.5846929440867458),
    FRAC_CONST(0.5870464660790119), FRAC_CONST(0.5893971876851449), FRAC_CONST(0.5917450360243719), FRAC_CONST(0.5940899384298793), FRAC_CONST(0.5964318224546208), FRAC_CONST(0.5987706158771039),
    FRAC_CONST(0.6011062467071583), FRAC_CONST(0.6034386431916822), FRAC_CONST(0.6057677338203681), FRAC_CONST(0.6080934473314057), FRAC_CONST(0.6104157127171639), FRAC_CONST(0.6127344592298474),
    FRAC_CONST(0.6150496163871310), FRAC_CONST(0.6173611139777690), FRAC_CONST(0.6196688820671789), FRAC_CONST(0.6219728510029997), FRAC_CONST(0.6242729514206247), FRAC_CONST(0.6265691142487051),
    FRAC_CONST(0.6288612707146283), FRAC_CONST(0.6311493523499663), FRAC_CONST(0.6334332909958958), FRAC_CONST(0.6357130188085891), FRAC_CONST(0.6379884682645743), FRAC_CONST(0.6402595721660647),
    FRAC_CONST(0.6425262636462578), FRAC_CONST(0.6447884761746012), FRAC_CONST(0.6470461435620266), FRAC_CONST(0.6492991999661505), FRAC_CONST(0.6515475798964411), FRAC_CONST(0.6537912182193508),
    FRAC_CONST(0.6560300501634142), FRAC_CONST(0.6582640113243098), FRAC_CONST(0.6604930376698862), FRAC_CONST(0.6627170655451516), FRAC_CONST(0.6649360316772256), FRAC_CONST(0.6671498731802533),
    FRAC_CONST(0.6693585275602818), FRAC_CONST(0.6715619327200959), FRAC_CONST(0.6737600269640164), FRAC_CONST(0.6759527490026566), FRAC_CONST(0.6781400379576392), FRAC_CONST(0.6803218333662715),
    FRAC_CONST(0.6824980751861787), FRAC_CONST(0.6846687037998949), FRAC_CONST(0.6868336600194123), FRAC_CONST(0.6889928850906855), FRAC_CONST(0.6911463206980928), FRAC_CONST(0.6932939089688525),
    FRAC_CONST(0.6954355924773949), FRAC_CONST(0.6975713142496884), FRAC_CONST(0.6997010177675195), FRAC_CONST(0.7018246469727265), FRAC_CONST(0.7039421462713862), FRAC_CONST(0.7060534605379528),
    FRAC_CONST(0.7081585351193496), FRAC_CONST(0.7102573158390105), FRAC_CONST(0.7123497490008750), FRAC_CONST(0.7144357813933307), FRAC_CONST(0.7165153602931092), FRAC_CONST(0.7185884334691287),
    FRAC_CONST(0.7206549491862871), FRAC_CONST(0.7227148562092042), FRAC_CONST(0.7247681038059106), FRAC_CONST(0.7268146417514855), FRAC_CONST(0.7288544203316418), FRAC_CONST(0.7308873903462577),
    FRAC_CONST(0.7329135031128549), FRAC_CONST(0.7349327104700221), FRAC_CONST(0.7369449647807855), FRAC_CONST(0.7389502189359237), FRAC_CONST(0.7409484263572271), FRAC_CONST(0.7429395410007016),
    FRAC_CONST(0.7449235173597176), FRAC_CONST(0.7469003104681008), FRAC_CONST(0.7488698759031670), FRAC_CONST(0.7508321697887005), FRAC_CONST(0.7527871487978728), FRAC_CONST(0.7547347701561059),
    FRAC_CONST(0.7566749916438754), FRAC_CONST(0.7586077715994560), FRAC_CONST(0.7605330689216074), FRAC_CONST(0.7624508430722016), FRAC_CONST(0.7643610540787891), FRAC_CONST(0.7662636625371070),
    FRAC_CONST(0.7681586296135255), FRAC_CONST(0.7700459170474343), FRAC_CONST(0.7719254871535672), FRAC_CONST(0.7737973028242671), FRAC_CONST(0.7756613275316875), FRAC_CONST(0.7775175253299340),
    FRAC_CONST(0.7793658608571425), FRAC_CONST(0.7812062993374951), FRAC_CONST(0.7830388065831744), FRAC_CONST(0.7848633489962533), FRAC_CONST(0.7866798935705233), FRAC_CONST(0.7884884078932579),
    FRAC_CONST(0.7902888601469138), FRAC_CONST(0.7920812191107668), FRAC_CONST(0.7938654541624850), FRAC_CONST(0.7956415352796368), FRAC_CONST(0.7974094330411343), FRAC_CONST(0.7991691186286133),
    FRAC_CONST(0.8009205638277465), FRAC_CONST(0.8026637410294932), FRAC_CONST(0.8043986232312831), FRAC_CONST(0.8061251840381346), FRAC_CONST(0.8078433976637077), FRAC_CONST(0.8095532389312917),
    FRAC_CONST(0.8112546832747255), FRAC_CONST(0.8129477067392539), FRAC_CONST(0.8146322859823164), FRAC_CONST(0.8163083982742698), FRAC_CONST(0.8179760214990457), FRAC_CONST(0.8196351341547393),
    FRAC_CONST(0.8212857153541345), FRAC_CONST(0.8229277448251595), FRAC_CONST(0.8245612029112778), FRAC_CONST(0.8261860705718113), FRAC_CONST(0.8278023293821971), FRAC_CONST(0.8294099615341773),
    FRAC_CONST(0.8310089498359212), FRAC_CONST(0.8325992777120815), FRAC_CONST(0.8341809292037831), FRAC_CONST(0.8357538889685445), FRAC_CONST(0.8373181422801330), FRAC_CONST(0.8388736750283521),
    FRAC_CONST(0.8404204737187619), FRAC_CONST(0.8419585254723335), FRAC_CONST(0.8434878180250348), FRAC_CONST(0.8450083397273509), FRAC_CONST(0.8465200795437368), FRAC_CONST(0.8480230270520029),
    FRAC_CONST(0.8495171724426350), FRAC_CONST(0.8510025065180464), FRAC_CONST(0.8524790206917633), FRAC_CONST(0.8539467069875448), FRAC_CONST(0.8554055580384357), FRAC_CONST(0.8568555670857525),
    FRAC_CONST(0.8582967279780043), FRAC_CONST(0.8597290351697464), FRAC_CONST(0.8611524837203691), FRAC_CONST(0.8625670692928198), FRAC_CONST(0.8639727881522599), FRAC_CONST(0.8653696371646555),
    FRAC_CONST(0.8667576137953045), FRAC_CONST(0.8681367161072958), FRAC_CONST(0.8695069427599065), FRAC_CONST(0.8708682930069319), FRAC_CONST(0.8722207666949527), FRAC_CONST(0.8735643642615368),
    FRAC_CONST(0.8748990867333771), FRAC_CONST(0.8762249357243662), FRAC_CONST(0.8775419134336067), FRAC_CONST(0.8788500226433579), FRAC_CONST(0.8801492667169208), FRAC_CONST(0.8814396495964587),
    FRAC_CONST(0.8827211758007560), FRAC_CONST(0.8839938504229149), FRAC_CONST(0.8852576791279895), FRAC_CONST(0.8865126681505587), FRAC_CONST(0.8877588242922386), FRAC_CONST(0.8889961549191320),
    FRAC_CONST(0.8902246679592184), FRAC_CONST(0.8914443718996848), FRAC_CONST(0.8926552757841945), FRAC_CONST(0.8938573892100969), FRAC_CONST(0.8950507223255798), FRAC_CONST(0.8962352858267605),
    FRAC_CONST(0.8974110909547198), FRAC_CONST(0.8985781494924783), FRAC_CONST(0.8997364737619142), FRAC_CONST(0.9008860766206249), FRAC_CONST(0.9020269714587307), FRAC_CONST(0.9031591721956235),
    FRAC_CONST(0.9042826932766591), FRAC_CONST(0.9053975496697941), FRAC_CONST(0.9065037568621681), FRAC_CONST(0.9076013308566311), FRAC_CONST(0.9086902881682180), FRAC_CONST(0.9097706458205682),
    FRAC_CONST(0.9108424213422940), FRAC_CONST(0.9119056327632955), FRAC_CONST(0.9129602986110235), FRAC_CONST(0.9140064379066919), FRAC_CONST(0.9150440701614393), FRAC_CONST(0.9160732153724396),
    FRAC_CONST(0.9170938940189634), FRAC_CONST(0.9181061270583908), FRAC_CONST(0.9191099359221748), FRAC_CONST(0.9201053425117579), FRAC_CONST(0.9210923691944400), FRAC_CONST(0.9220710387992010),
    FRAC_CONST(0.9230413746124764), FRAC_CONST(0.9240034003738882), FRAC_CONST(0.9249571402719298), FRAC_CONST(0.9259026189396085), FRAC_CONST(0.9268398614500427), FRAC_CONST(0.9277688933120170),
    FRAC_CONST(0.9286897404654957), FRAC_CONST(0.9296024292770939), FRAC_CONST(0.9305069865355076), FRAC_CONST(0.9314034394469048), FRAC_CONST(0.9322918156302762), FRAC_CONST(0.9331721431127471),
    FRAC_CONST(0.9340444503248519), FRAC_CONST(0.9349087660957711), FRAC_CONST(0.9357651196485313), FRAC_CONST(0.9366135405951697), FRAC_CONST(0.9374540589318637), FRAC_CONST(0.9382867050340261),
    FRAC_CONST(0.9391115096513655), FRAC_CONST(0.9399285039029165), FRAC_CONST(0.9407377192720349), FRAC_CONST(0.9415391876013639), FRAC_CONST(0.9423329410877687), FRAC_CONST(0.9431190122772415),
    FRAC_CONST(0.9438974340597782), FRAC_CONST(0.9446682396642262), FRAC_CONST(0.9454314626531054), FRAC_CONST(0.9461871369174033), FRAC_CONST(0.9469352966713429), FRAC_CONST(0.9476759764471278),
    FRAC_CONST(0.9484092110896616), FRAC_CONST(0.9491350357512457), FRAC_CONST(0.9498534858862532), FRAC_CONST(0.9505645972457831), FRAC_CONST(0.9512684058722927), FRAC_CONST(0.9519649480942105),
    FRAC_CONST(0.9526542605205314), FRAC_CONST(0.9533363800353921), FRAC_CONST(0.9540113437926313), FRAC_CONST(0.9546791892103320), FRAC_CONST(0.9553399539653500), FRAC_CONST(0.9559936759878265),
    FRAC_CONST(0.9566403934556893), FRAC_CONST(0.9572801447891388), FRAC_CONST(0.9579129686451244), FRAC_CONST(0.9585389039118085), FRAC_CONST(0.9591579897030224), FRAC_CONST(0.9597702653527108),
    FRAC_CONST(0.9603757704093711), FRAC_CONST(0.9609745446304828), FRAC_CONST(0.9615666279769324), FRAC_CONST(0.9621520606074324), FRAC_CONST(0.9627308828729358), FRAC_CONST(0.9633031353110477),
    FRAC_CONST(0.9638688586404335), FRAC_CONST(0.9644280937552258), FRAC_CONST(0.9649808817194311), FRAC_CONST(0.9655272637613366), FRAC_CONST(0.9660672812679171), FRAC_CONST(0.9666009757792454),
    FRAC_CONST(0.9671283889829055), FRAC_CONST(0.9676495627084089), FRAC_CONST(0.9681645389216160), FRAC_CONST(0.9686733597191652), FRAC_CONST(0.9691760673229058), FRAC_CONST(0.9696727040743406),
    FRAC_CONST(0.9701633124290767), FRAC_CONST(0.9706479349512860), FRAC_CONST(0.9711266143081750), FRAC_CONST(0.9715993932644684), FRAC_CONST(0.9720663146769026), FRAC_CONST(0.9725274214887337),
    FRAC_CONST(0.9729827567242596), FRAC_CONST(0.9734323634833574), FRAC_CONST(0.9738762849360358), FRAC_CONST(0.9743145643170059), FRAC_CONST(0.9747472449202687), FRAC_CONST(0.9751743700937215),
    FRAC_CONST(0.9755959832337850), FRAC_CONST(0.9760121277800496), FRAC_CONST(0.9764228472099433), FRAC_CONST(0.9768281850334235), FRAC_CONST(0.9772281847876897), FRAC_CONST(0.9776228900319223),
    FRAC_CONST(0.9780123443420448), FRAC_CONST(0.9783965913055132), FRAC_CONST(0.9787756745161313), FRAC_CONST(0.9791496375688939), FRAC_CONST(0.9795185240548578), FRAC_CONST(0.9798823775560431),
    FRAC_CONST(0.9802412416403639), FRAC_CONST(0.9805951598565897), FRAC_CONST(0.9809441757293399), FRAC_CONST(0.9812883327541090), FRAC_CONST(0.9816276743923267), FRAC_CONST(0.9819622440664515),
    FRAC_CONST(0.9822920851550995), FRAC_CONST(0.9826172409882086), FRAC_CONST(0.9829377548422400), FRAC_CONST(0.9832536699354163), FRAC_CONST(0.9835650294229984), FRAC_CONST(0.9838718763926001),
    FRAC_CONST(0.9841742538595437), FRAC_CONST(0.9844722047622547), FRAC_CONST(0.9847657719576983), FRAC_CONST(0.9850549982168574), FRAC_CONST(0.9853399262202529), FRAC_CONST(0.9856205985535073),
    FRAC_CONST(0.9858970577029519), FRAC_CONST(0.9861693460512790), FRAC_CONST(0.9864375058732389), FRAC_CONST(0.9867015793313820), FRAC_CONST(0.9869616084718489), FRAC_CONST(0.9872176352202061),
    FRAC_CONST(0.9874697013773301), FRAC_CONST(0.9877178486153397), FRAC_CONST(0.9879621184735767), FRAC_CONST(0.9882025523546365), FRAC_CONST(0.9884391915204485), FRAC_CONST(0.9886720770884069),
    FRAC_CONST(0.9889012500275530), FRAC_CONST(0.9891267511548089), FRAC_CONST(0.9893486211312621), FRAC_CONST(0.9895669004585049), FRAC_CONST(0.9897816294750255), FRAC_CONST(0.9899928483526520),
    FRAC_CONST(0.9902005970930525), FRAC_CONST(0.9904049155242876), FRAC_CONST(0.9906058432974180), FRAC_CONST(0.9908034198831690), FRAC_CONST(0.9909976845686489), FRAC_CONST(0.9911886764541239),
    FRAC_CONST(0.9913764344498495), FRAC_CONST(0.9915609972729590), FRAC_CONST(0.9917424034444086), FRAC_CONST(0.9919206912859797), FRAC_CONST(0.9920958989173397), FRAC_CONST(0.9922680642531603),
    FRAC_CONST(0.9924372250002933), FRAC_CONST(0.9926034186550070), FRAC_CONST(0.9927666825002789), FRAC_CONST(0.9929270536031491), FRAC_CONST(0.9930845688121325), FRAC_CONST(0.9932392647546895),
    FRAC_CONST(0.9933911778347579), FRAC_CONST(0.9935403442303433), FRAC_CONST(0.9936867998911693), FRAC_CONST(0.9938305805363887), FRAC_CONST(0.9939717216523539), FRAC_CONST(0.9941102584904481),
    FRAC_CONST(0.9942462260649764), FRAC_CONST(0.9943796591511174), FRAC_CONST(0.9945105922829353), FRAC_CONST(0.9946390597514524), FRAC_CONST(0.9947650956027824), FRAC_CONST(0.9948887336363228),
    FRAC_CONST(0.9950100074030103), FRAC_CONST(0.9951289502036336), FRAC_CONST(0.9952455950872091), FRAC_CONST(0.9953599748494155), FRAC_CONST(0.9954721220310890), FRAC_CONST(0.9955820689167787),
    FRAC_CONST(0.9956898475333619), FRAC_CONST(0.9957954896487196), FRAC_CONST(0.9958990267704713), FRAC_CONST(0.9960004901447701), FRAC_CONST(0.9960999107551559), FRAC_CONST(0.9961973193214694),
    FRAC_CONST(0.9962927462988245), FRAC_CONST(0.9963862218766388), FRAC_CONST(0.9964777759777242), FRAC_CONST(0.9965674382574342), FRAC_CONST(0.9966552381028704), FRAC_CONST(0.9967412046321465),
    FRAC_CONST(0.9968253666937095), FRAC_CONST(0.9969077528657186), FRAC_CONST(0.9969883914554805), FRAC_CONST(0.9970673104989413), FRAC_CONST(0.9971445377602348), FRAC_CONST(0.9972201007312871),
    FRAC_CONST(0.9972940266314749), FRAC_CONST(0.9973663424073412), FRAC_CONST(0.9974370747323638), FRAC_CONST(0.9975062500067785), FRAC_CONST(0.9975738943574574), FRAC_CONST(0.9976400336378379),
    FRAC_CONST(0.9977046934279079), FRAC_CONST(0.9977678990342401), FRAC_CONST(0.9978296754900812), FRAC_CONST(0.9978900475554902), FRAC_CONST(0.9979490397175296), FRAC_CONST(0.9980066761905056),
    FRAC_CONST(0.9980629809162593), FRAC_CONST(0.9981179775645063), FRAC_CONST(0.9981716895332257), FRAC_CONST(0.9982241399490979), FRAC_CONST(0.9982753516679893), FRAC_CONST(0.9983253472754841),
    FRAC_CONST(0.9983741490874634), FRAC_CONST(0.9984217791507299), FRAC_CONST(0.9984682592436778), FRAC_CONST(0.9985136108770075), FRAC_CONST(0.9985578552944850), FRAC_CONST(0.9986010134737439),
    FRAC_CONST(0.9986431061271304), FRAC_CONST(0.9986841537025921), FRAC_CONST(0.9987241763846056), FRAC_CONST(0.9987631940951476), FRAC_CONST(0.9988012264947044), FRAC_CONST(0.9988382929833222),
    FRAC_CONST(0.9988744127016956), FRAC_CONST(0.9989096045322947), FRAC_CONST(0.9989438871005292), FRAC_CONST(0.9989772787759494), FRAC_CONST(0.9990097976734847), FRAC_CONST(0.9990414616547146),
    FRAC_CONST(0.9990722883291779), FRAC_CONST(0.9991022950557125), FRAC_CONST(0.9991314989438310), FRAC_CONST(0.9991599168551279), FRAC_CONST(0.9991875654047181), FRAC_CONST(0.9992144609627068),
    FRAC_CONST(0.9992406196556911), FRAC_CONST(0.9992660573682882), FRAC_CONST(0.9992907897446957), FRAC_CONST(0.9993148321902777), FRAC_CONST(0.9993381998731797), FRAC_CONST(0.9993609077259696),
    FRAC_CONST(0.9993829704473038), FRAC_CONST(0.9994044025036201), FRAC_CONST(0.9994252181308537), FRAC_CONST(0.9994454313361775), FRAC_CONST(0.9994650558997651), FRAC_CONST(0.9994841053765757),
    FRAC_CONST(0.9995025930981609), FRAC_CONST(0.9995205321744921), FRAC_CONST(0.9995379354958073), FRAC_CONST(0.9995548157344778), FRAC_CONST(0.9995711853468930), FRAC_CONST(0.9995870565753632),
    FRAC_CONST(0.9996024414500382), FRAC_CONST(0.9996173517908444), FRAC_CONST(0.9996317992094352), FRAC_CONST(0.9996457951111574), FRAC_CONST(0.9996593506970310), FRAC_CONST(0.9996724769657434),
    FRAC_CONST(0.9996851847156547), FRAC_CONST(0.9996974845468164), FRAC_CONST(0.9997093868630000), FRAC_CONST(0.9997209018737374), FRAC_CONST(0.9997320395963699), FRAC_CONST(0.9997428098581069),
    FRAC_CONST(0.9997532222980933), FRAC_CONST(0.9997632863694836), FRAC_CONST(0.9997730113415246), FRAC_CONST(0.9997824063016426), FRAC_CONST(0.9997914801575380), FRAC_CONST(0.9998002416392840),
    FRAC_CONST(0.9998086993014300), FRAC_CONST(0.9998168615251084), FRAC_CONST(0.9998247365201450), FRAC_CONST(0.9998323323271717), FRAC_CONST(0.9998396568197407), FRAC_CONST(0.9998467177064404),
    FRAC_CONST(0.9998535225330116), FRAC_CONST(0.9998600786844637), FRAC_CONST(0.9998663933871905), FRAC_CONST(0.9998724737110845), FRAC_CONST(0.9998783265716498), FRAC_CONST(0.9998839587321121),
    FRAC_CONST(0.9998893768055266), FRAC_CONST(0.9998945872568815), FRAC_CONST(0.9998995964051983), FRAC_CONST(0.9999044104256269), FRAC_CONST(0.9999090353515359), FRAC_CONST(0.9999134770765971),
    FRAC_CONST(0.9999177413568642), FRAC_CONST(0.9999218338128448), FRAC_CONST(0.9999257599315647), FRAC_CONST(0.9999295250686255), FRAC_CONST(0.9999331344502529), FRAC_CONST(0.9999365931753376),
    FRAC_CONST(0.9999399062174669), FRAC_CONST(0.9999430784269460), FRAC_CONST(0.9999461145328103), FRAC_CONST(0.9999490191448277), FRAC_CONST(0.9999517967554878), FRAC_CONST(0.9999544517419835),
    FRAC_CONST(0.9999569883681778), FRAC_CONST(0.9999594107865607), FRAC_CONST(0.9999617230401926), FRAC_CONST(0.9999639290646355), FRAC_CONST(0.9999660326898712), FRAC_CONST(0.9999680376422052),
    FRAC_CONST(0.9999699475461585), FRAC_CONST(0.9999717659263435), FRAC_CONST(0.9999734962093266), FRAC_CONST(0.9999751417254756), FRAC_CONST(0.9999767057107922), FRAC_CONST(0.9999781913087290),
    FRAC_CONST(0.9999796015719915), FRAC_CONST(0.9999809394643231), FRAC_CONST(0.9999822078622751), FRAC_CONST(0.9999834095569596), FRAC_CONST(0.9999845472557860), FRAC_CONST(0.9999856235841805),
    FRAC_CONST(0.9999866410872889), FRAC_CONST(0.9999876022316609), FRAC_CONST(0.9999885094069193), FRAC_CONST(0.9999893649274085), FRAC_CONST(0.9999901710338274), FRAC_CONST(0.9999909298948430),
    FRAC_CONST(0.9999916436086862), FRAC_CONST(0.9999923142047299), FRAC_CONST(0.9999929436450469), FRAC_CONST(0.9999935338259505), FRAC_CONST(0.9999940865795161), FRAC_CONST(0.9999946036750835),
    FRAC_CONST(0.9999950868207405), FRAC_CONST(0.9999955376647868), FRAC_CONST(0.9999959577971798), FRAC_CONST(0.9999963487509599), FRAC_CONST(0.9999967120036571), FRAC_CONST(0.9999970489786785),
    FRAC_CONST(0.9999973610466748), FRAC_CONST(0.9999976495268890), FRAC_CONST(0.9999979156884846), FRAC_CONST(0.9999981607518545), FRAC_CONST(0.9999983858899099), FRAC_CONST(0.9999985922293493),
    FRAC_CONST(0.9999987808519092), FRAC_CONST(0.9999989527955938), FRAC_CONST(0.9999991090558848), FRAC_CONST(0.9999992505869332), FRAC_CONST(0.9999993783027293), FRAC_CONST(0.9999994930782556),
    FRAC_CONST(0.9999995957506171), FRAC_CONST(0.9999996871201549), FRAC_CONST(0.9999997679515386), FRAC_CONST(0.9999998389748399), FRAC_CONST(0.9999999008865869), FRAC_CONST(0.9999999543507984)};
#endif

 const int32_t kbd_short_128[] = {
    FRAC_CONST(4.3795702929468881e-005), FRAC_CONST(0.00011867384265436617), FRAC_CONST(0.0002307165763996192), FRAC_CONST(0.00038947282760568383), FRAC_CONST(0.00060581272288302553),
    FRAC_CONST(0.00089199695169487453),  FRAC_CONST(0.0012617254423430522),  FRAC_CONST(0.0017301724373162003), FRAC_CONST(0.0023140071937421476),  FRAC_CONST(0.0030313989666022221),
    FRAC_CONST(0.0039020049735530842),   FRAC_CONST(0.0049469401815512024),  FRAC_CONST(0.0061887279335368318), FRAC_CONST(0.0076512306364647726),  FRAC_CONST(0.0093595599562652423),
    FRAC_CONST(0.011339966208377799),    FRAC_CONST(0.013619706891715299),   FRAC_CONST(0.016226894586323766),  FRAC_CONST(0.019190324717288168),   FRAC_CONST(0.022539283975960878),
    FRAC_CONST(0.026303340480472455),    FRAC_CONST(0.030512117046644357),   FRAC_CONST(0.03519504922365594),   FRAC_CONST(0.040381130021856941),   FRAC_CONST(0.046098643518702249),
    FRAC_CONST(0.052374889768730587),    FRAC_CONST(0.059235903660769147),   FRAC_CONST(0.066706170556282418),  FRAC_CONST(0.074808341703430481),   FRAC_CONST(0.083562952548726227),
    FRAC_CONST(0.092988147159339674),    FRAC_CONST(0.1030994120216919),     FRAC_CONST(0.11390932249409955),   FRAC_CONST(0.12542730516149531),    FRAC_CONST(0.13765941926783826),
    FRAC_CONST(0.15060816028651081),     FRAC_CONST(0.16427228853114245),    FRAC_CONST(0.17864668550988483),   FRAC_CONST(0.19372224048676889),    FRAC_CONST(0.20948576943658073),
    FRAC_CONST(0.22591996826744942),     FRAC_CONST(0.24300340184133981),    FRAC_CONST(0.26071052995068139),   FRAC_CONST(0.27901177101369551),    FRAC_CONST(0.29787360383626599),
    FRAC_CONST(0.3172587073594233),      FRAC_CONST(0.33712613787396362),    FRAC_CONST(0.35743154274286698),   FRAC_CONST(0.37812740923363009),    FRAC_CONST(0.39916334663203618),
    FRAC_CONST(0.42048639939189658),     FRAC_CONST(0.4420413886774246),     FRAC_CONST(0.4637712792815169),    FRAC_CONST(0.4856175685594023),     FRAC_CONST(0.50752069370766872),
    FRAC_CONST(0.52942045344797806),     FRAC_CONST(0.55125643994680196),    FRAC_CONST(0.57296847662071559),   FRAC_CONST(0.59449705734411495),    FRAC_CONST(0.61578378249506627),
    FRAC_CONST(0.63677178724712891),     FRAC_CONST(0.65740615754163356),    FRAC_CONST(0.67763432925662526),   FRAC_CONST(0.69740646622548552),    FRAC_CONST(0.71667581294953808),
    FRAC_CONST(0.73539901809352737),     FRAC_CONST(0.75353642514900732),    FRAC_CONST(0.77105232699609816),   FRAC_CONST(0.78791518148597028),    FRAC_CONST(0.80409778560147072),
    FRAC_CONST(0.81957740622770781),     FRAC_CONST(0.83433586607383625),    FRAC_CONST(0.84835958382689225),   FRAC_CONST(0.86163956818294229),    FRAC_CONST(0.87417136598406997),
    FRAC_CONST(0.88595496528524853),     FRAC_CONST(0.89699465477567619),    FRAC_CONST(0.90729884157670959),   FRAC_CONST(0.91687983002436779),    FRAC_CONST(0.92575356460899649),
    FRAC_CONST(0.93393934077779084),     FRAC_CONST(0.94145948779657318),    FRAC_CONST(0.94833902830402828),   FRAC_CONST(0.95460531956280026),    FRAC_CONST(0.96028768170574896),
    FRAC_CONST(0.96541701848104766),     FRAC_CONST(0.97002543610646474),    FRAC_CONST(0.97414586584250062),   FRAC_CONST(0.97781169577969584),    FRAC_CONST(0.98105641710392333),
    FRAC_CONST(0.98391328975491177),     FRAC_CONST(0.98641503193166202),    FRAC_CONST(0.98859353733226141),   FRAC_CONST(0.99047962335771556),    FRAC_CONST(0.9921028127769449),
    FRAC_CONST(0.99349115056397752),     FRAC_CONST(0.99467105680259038),    FRAC_CONST(0.9956672157341897),    FRAC_CONST(0.99650250022834352),    FRAC_CONST(0.99719793020823266),
    FRAC_CONST(0.99777266288955657),     FRAC_CONST(0.99824401211201486),    FRAC_CONST(0.99862749357391212),   FRAC_CONST(0.99893689243401962),    FRAC_CONST(0.99918434952623147),
    FRAC_CONST(0.99938046234161726),     FRAC_CONST(0.99953439696357238),    FRAC_CONST(0.99965400728430465),   FRAC_CONST(0.99974595807027455),    FRAC_CONST(0.99981584876278362),
    FRAC_CONST(0.99986833527824281),     FRAC_CONST(0.99990724749057802),    FRAC_CONST(0.99993570051598468),   FRAC_CONST(0.99995619835942084),    FRAC_CONST(0.99997072890647543),
    FRAC_CONST(0.9999808496399144),      FRAC_CONST(0.99998776381655818),    FRAC_CONST(0.99999238714961569),   FRAC_CONST(0.99999540529959718),    FRAC_CONST(0.99999732268176988),
    FRAC_CONST(0.99999850325054862),     FRAC_CONST(0.99999920402413744),    FRAC_CONST(0.9999996021706401),    FRAC_CONST(0.99999981649545566),    FRAC_CONST(0.99999992415545547),
    FRAC_CONST(0.99999997338493041),     FRAC_CONST(0.99999999295825959),    FRAC_CONST(0.99999999904096815)};

#ifdef ALLOW_SMALL_FRAMELENGTH
 const int32_t kbd_short_120[] = {
    FRAC_CONST(0.0000452320086910), FRAC_CONST(0.0001274564692111), FRAC_CONST(0.0002529398385345), FRAC_CONST(0.0004335140496648), FRAC_CONST(0.0006827100966952), FRAC_CONST(0.0010158708222246),
    FRAC_CONST(0.0014502162869659), FRAC_CONST(0.0020048865156264), FRAC_CONST(0.0027009618393178), FRAC_CONST(0.0035614590925043), FRAC_CONST(0.0046113018122711), FRAC_CONST(0.0058772627936484),
    FRAC_CONST(0.0073878776584103), FRAC_CONST(0.0091733284512589), FRAC_CONST(0.0112652966728373), FRAC_CONST(0.0136967855861945), FRAC_CONST(0.0165019120857793), FRAC_CONST(0.0197156688892217),
    FRAC_CONST(0.0233736582950619), FRAC_CONST(0.0275117992367496), FRAC_CONST(0.0321660098468534), FRAC_CONST(0.0373718682174417), FRAC_CONST(0.0431642544948834), FRAC_CONST(0.0495769778717676),
    FRAC_CONST(0.0566423924273392), FRAC_CONST(0.0643910061132260), FRAC_CONST(0.0728510874761729), FRAC_CONST(0.0820482749475221), FRAC_CONST(0.0920051937045235), FRAC_CONST(0.1027410852163450),
    FRAC_CONST(0.1142714546239370), FRAC_CONST(0.1266077410648368), FRAC_CONST(0.1397570159398145), FRAC_CONST(0.1537217139274270), FRAC_CONST(0.1684994012857075), FRAC_CONST(0.1840825856392944),
    FRAC_CONST(0.2004585710384133), FRAC_CONST(0.2176093615976121), FRAC_CONST(0.2355116164824983), FRAC_CONST(0.2541366584185075), FRAC_CONST(0.2734505372545160), FRAC_CONST(0.2934141494343369),
    FRAC_CONST(0.3139834135200387), FRAC_CONST(0.3351095011824163), FRAC_CONST(0.3567391223361566), FRAC_CONST(0.3788148623608774), FRAC_CONST(0.4012755686250732), FRAC_CONST(0.4240567828288110),
    FRAC_CONST(0.4470912150133537), FRAC_CONST(0.4703092544619664), FRAC_CONST(0.4936395121456694), FRAC_CONST(0.5170093888596962), FRAC_CONST(0.5403456627591340), FRAC_CONST(0.5635750896430154),
    FRAC_CONST(0.5866250090612892), FRAC_CONST(0.6094239491338723), FRAC_CONST(0.6319022228794100), FRAC_CONST(0.6539925088563087), FRAC_CONST(0.6756304090216887), FRAC_CONST(0.6967549769155277),
    FRAC_CONST(0.7173092095766250), FRAC_CONST(0.7372404969921184), FRAC_CONST(0.7565010233699827), FRAC_CONST(0.7750481150999984), FRAC_CONST(0.7928445309277697), FRAC_CONST(0.8098586906021583),
    FRAC_CONST(0.8260648390616000), FRAC_CONST(0.8414431440907889), FRAC_CONST(0.8559797262966709), FRAC_CONST(0.8696666212110165), FRAC_CONST(0.8825016743142358), FRAC_CONST(0.8944883707784486),
    FRAC_CONST(0.9056356027326216), FRAC_CONST(0.9159573778427816), FRAC_CONST(0.9254724739583072), FRAC_CONST(0.9342040454819434), FRAC_CONST(0.9421791879559176), FRAC_CONST(0.9494284680976784),
    FRAC_CONST(0.9559854271440150), FRAC_CONST(0.9618860658493898), FRAC_CONST(0.9671683198119525), FRAC_CONST(0.9718715339497299), FRAC_CONST(0.9760359449042233), FRAC_CONST(0.9797021798981759),
    FRAC_CONST(0.9829107801140203), FRAC_CONST(0.9857017559923277), FRAC_CONST(0.9881141809867999), FRAC_CONST(0.9901858292742826), FRAC_CONST(0.9919528617340944), FRAC_CONST(0.9934495632180476),
    FRAC_CONST(0.9947081327749199), FRAC_CONST(0.9957585271195989), FRAC_CONST(0.9966283562984427), FRAC_CONST(0.9973428292485683), FRAC_CONST(0.9979247458259197), FRAC_CONST(0.9983945309245774),
    FRAC_CONST(0.9987703055583410), FRAC_CONST(0.9990679892449266), FRAC_CONST(0.9993014277313617), FRAC_CONST(0.9994825400228521), FRAC_CONST(0.9996214788122335), FRAC_CONST(0.9997267987294857),
    FRAC_CONST(0.9998056273097539), FRAC_CONST(0.9998638341781910), FRAC_CONST(0.9999061946325793), FRAC_CONST(0.9999365445321382), FRAC_CONST(0.9999579241373735), FRAC_CONST(0.9999727092594598),
    FRAC_CONST(0.9999827287418790), FRAC_CONST(0.9999893678912771), FRAC_CONST(0.9999936579844555), FRAC_CONST(0.9999963523959187), FRAC_CONST(0.9999979902130101), FRAC_CONST(0.9999989484358076),
    FRAC_CONST(0.9999994840031031), FRAC_CONST(0.9999997669534347), FRAC_CONST(0.9999999060327799), FRAC_CONST(0.9999999680107184), FRAC_CONST(0.9999999918774242), FRAC_CONST(0.9999999989770326)};
#endif

  const hcb_t hcb1_1[] = {{/* 00000 */ 0, 0}, {/*       */ 0, 0},  {/*       */ 0, 0},  {/*       */ 0, 0},  {/*       */ 0, 0},  {/*       */ 0, 0},  {/*       */ 0, 0},  {/*       */ 0, 0},
                       {/*       */ 0, 0}, {/*       */ 0, 0},  {/*       */ 0, 0},  {/*       */ 0, 0},  {/*       */ 0, 0},  {/*       */ 0, 0},  {/*       */ 0, 0},  {/*       */ 0, 0},
                       {/* 10000 */ 1, 0}, {/* 10001 */ 2, 0},  {/* 10010 */ 3, 0},  {/* 10011 */ 4, 0},  {/* 10100 */ 5, 0},  {/* 10101 */ 6, 0},  {/* 10110 */ 7, 0},  {/* 10111 */ 8, 0},
                       {/* 11000 */ 9, 2}, {/* 11001 */ 13, 2}, {/* 11010 */ 17, 2}, {/* 11011 */ 21, 2}, {/* 11100 */ 25, 2}, {/* 11101 */ 29, 2}, {/* 11110 */ 33, 4}, {/* 11111 */ 49, 6}};

/* 2nd step table
 *
 * Gives size of codeword and actual data (x,y,v,w)
 */
 const hcb_2_quad_t hcb1_2[] = {
    {1, 0, 0, 0, 0},    {5, 1, 0, 0, 0},     {5, -1, 0, 0, 0},    {5, 0, 0, 0, -1},    {5, 0, 1, 0, 0},    {5, 0, 0, 0, 1},     {5, 0, 0, -1, 0},     {5, 0, 0, 1, 0},    {5, 0, -1, 0, 0},
    {7, 1, -1, 0, 0},   {7, -1, 1, 0, 0},    {7, 0, 0, -1, 1},    {7, 0, 1, -1, 0},    {7, 0, -1, 1, 0},   {7, 0, 0, 1, -1},    {7, 1, 1, 0, 0},      {7, 0, 0, -1, -1},  {7, -1, -1, 0, 0},
    {7, 0, -1, -1, 0},  {7, 1, 0, -1, 0},    {7, 0, 1, 0, -1},    {7, -1, 0, 1, 0},    {7, 0, 0, 1, 1},    {7, 1, 0, 1, 0},     {7, 0, -1, 0, 1},     {7, 0, 1, 1, 0},    {7, 0, 1, 0, 1},
    {7, -1, 0, -1, 0},  {7, 1, 0, 0, 1},     {7, -1, 0, 0, -1},   {7, 1, 0, 0, -1},    {7, -1, 0, 0, 1},   {7, 0, -1, 0, -1},   {9, 1, 1, -1, 0},     {9, -1, 1, -1, 0},  {9, 1, -1, 1, 0},
    {9, 0, 1, 1, -1},   {9, 0, 1, -1, 1},    {9, 0, -1, 1, 1},    {9, 0, -1, 1, -1},   {9, 1, -1, -1, 0},  {9, 1, 0, -1, 1},    {9, 0, 1, -1, -1},    {9, -1, 1, 1, 0},   {9, -1, 0, 1, -1},
    {9, -1, -1, 1, 0},  {9, 0, -1, -1, 1},   {9, 1, -1, 0, 1},    {9, 1, -1, 0, -1},   {9, -1, 1, 0, -1},  {9, -1, 1, 0, -1},   {9, -1, 1, 0, -1},    {9, -1, 1, 0, -1},  {9, -1, -1, -1, 0},
    {9, -1, -1, -1, 0}, {9, -1, -1, -1, 0},  {9, -1, -1, -1, 0},  {9, 0, -1, -1, -1},  {9, 0, -1, -1, -1}, {9, 0, -1, -1, -1},  {9, 0, -1, -1, -1},   {9, 0, 1, 1, 1},    {9, 0, 1, 1, 1},
    {9, 0, 1, 1, 1},    {9, 0, 1, 1, 1},     {9, 1, 0, 1, -1},    {9, 1, 0, 1, -1},    {9, 1, 0, 1, -1},   {9, 1, 0, 1, -1},    {9, 1, 1, 0, 1},      {9, 1, 1, 0, 1},    {9, 1, 1, 0, 1},
    {9, 1, 1, 0, 1},    {9, -1, 1, 0, 1},    {9, -1, 1, 0, 1},    {9, -1, 1, 0, 1},    {9, -1, 1, 0, 1},   {9, 1, 1, 1, 0},     {9, 1, 1, 1, 0},      {9, 1, 1, 1, 0},    {9, 1, 1, 1, 0},
    {10, -1, -1, 0, 1}, {10, -1, -1, 0, 1},  {10, -1, 0, -1, -1}, {10, -1, 0, -1, -1}, {10, 1, 1, 0, -1},  {10, 1, 1, 0, -1},   {10, 1, 0, -1, -1},   {10, 1, 0, -1, -1}, {10, -1, 0, -1, 1},
    {10, -1, 0, -1, 1}, {10, -1, -1, 0, -1}, {10, -1, -1, 0, -1}, {10, -1, 0, 1, 1},   {10, -1, 0, 1, 1},  {10, 1, 0, 1, 1},    {10, 1, 0, 1, 1},     {11, 1, -1, 1, -1}, {11, -1, 1, -1, 1},
    {11, -1, 1, 1, -1}, {11, 1, -1, -1, 1},  {11, 1, 1, 1, 1},    {11, -1, -1, 1, 1},  {11, 1, 1, -1, -1}, {11, -1, -1, 1, -1}, {11, -1, -1, -1, -1}, {11, 1, 1, -1, 1},  {11, 1, -1, 1, 1},
    {11, -1, 1, 1, 1},  {11, -1, 1, -1, -1}, {11, -1, -1, -1, 1}, {11, 1, -1, -1, -1}, {11, 1, 1, 1, -1}};

 const hcb_t hcb10_1[] = {{0, 0},  {0, 0},  {0, 0},  {0, 0},  {1, 0},  {1, 0},  {1, 0},  {1, 0},  {2, 0},  {2, 0},  {2, 0},  {2, 0},  {3, 0},  {3, 0},   {4, 0},   {4, 0},
                        {5, 0},  {5, 0},  {6, 0},  {6, 0},  {7, 0},  {7, 0},  {8, 0},  {8, 0},  {9, 0},  {9, 0},  {10, 0}, {10, 0}, {11, 0}, {12, 0},  {13, 0},  {14, 0},
                        {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 1}, {27, 1}, {29, 1}, {31, 1},  {33, 1},  {35, 1},
                        {37, 1}, {39, 1}, {41, 2}, {45, 2}, {49, 2}, {53, 2}, {57, 2}, {61, 2}, {65, 3}, {73, 3}, {81, 3}, {89, 3}, {97, 4}, {113, 4}, {129, 4}, {145, 6}};

 const hcb_2_pair_t hcb10_2[] = {
    {4, 1, 1},    {4, 1, 2},    {4, 2, 1},    {5, 2, 2},   {5, 1, 0},   {5, 0, 1},    {5, 1, 3},    {5, 3, 2},   {5, 3, 1},    {5, 2, 3},    {5, 3, 3},    {6, 2, 0},    {6, 0, 2},   {6, 2, 4},
    {6, 4, 2},    {6, 1, 4},    {6, 4, 1},    {6, 0, 0},   {6, 4, 3},   {6, 3, 4},    {6, 3, 0},    {6, 0, 3},   {6, 4, 4},    {6, 2, 5},    {6, 5, 2},    {7, 1, 5},    {7, 5, 1},   {7, 5, 3},
    {7, 3, 5},    {7, 5, 4},    {7, 4, 5},    {7, 6, 2},   {7, 2, 6},   {7, 6, 3},    {7, 4, 0},    {7, 6, 1},   {7, 0, 4},    {7, 1, 6},    {7, 3, 6},    {7, 5, 5},    {7, 6, 4},   {7, 4, 6},
    {7, 4, 6},    {8, 6, 5},    {8, 7, 2},    {8, 3, 7},   {8, 2, 7},   {8, 5, 6},    {8, 8, 2},    {8, 7, 3},   {8, 5, 0},    {8, 7, 1},    {8, 0, 5},    {8, 8, 1},    {8, 1, 7},   {8, 8, 3},
    {8, 7, 4},    {8, 4, 7},    {8, 2, 8},    {8, 6, 6},   {8, 7, 5},   {8, 1, 8},    {8, 3, 8},    {8, 8, 4},   {8, 4, 8},    {8, 5, 7},    {8, 5, 7},    {8, 8, 5},    {8, 8, 5},   {8, 5, 8},
    {8, 5, 8},    {9, 7, 6},    {9, 6, 7},    {9, 9, 2},   {9, 6, 0},   {9, 6, 8},    {9, 9, 3},    {9, 3, 9},   {9, 9, 1},    {9, 2, 9},    {9, 0, 6},    {9, 8, 6},    {9, 9, 4},   {9, 4, 9},
    {9, 10, 2},   {9, 1, 9},    {9, 7, 7},    {9, 8, 7},   {9, 9, 5},   {9, 7, 8},    {9, 10, 3},   {9, 5, 9},   {9, 10, 4},   {9, 2, 10},   {9, 10, 1},   {9, 3, 10},   {9, 9, 6},   {9, 6, 9},
    {9, 6, 9},    {9, 8, 0},    {9, 8, 0},    {9, 4, 10},  {9, 4, 10},  {9, 7, 0},    {9, 7, 0},    {9, 11, 2},  {9, 11, 2},   {10, 7, 9},   {10, 11, 3},  {10, 10, 6},  {10, 1, 10}, {10, 11, 1},
    {10, 9, 7},   {10, 0, 7},   {10, 8, 8},   {10, 10, 5}, {10, 3, 11}, {10, 5, 10},  {10, 8, 9},   {10, 11, 5}, {10, 0, 8},   {10, 11, 4},  {10, 2, 11},  {10, 7, 10},  {10, 6, 10}, {10, 10, 7},
    {10, 4, 11},  {10, 1, 11},  {10, 12, 2},  {10, 9, 8},  {10, 12, 3}, {10, 11, 6},  {10, 5, 11},  {10, 12, 4}, {10, 11, 7},  {10, 12, 5},  {10, 3, 12},  {10, 6, 11},  {10, 9, 0},  {10, 10, 8},
    {10, 10, 0},  {10, 12, 1},  {10, 0, 9},   {10, 4, 12}, {10, 9, 9},  {10, 12, 6},  {10, 12, 6},  {10, 12, 6}, {10, 12, 6},  {10, 2, 12},  {10, 2, 12},  {10, 2, 12},  {10, 2, 12}, {10, 8, 10},
    {10, 8, 10},  {10, 8, 10},  {10, 8, 10},  {11, 9, 10}, {11, 9, 10}, {11, 1, 12},  {11, 1, 12},  {11, 11, 8}, {11, 11, 8},  {11, 12, 7},  {11, 12, 7},  {11, 7, 11},  {11, 7, 11}, {11, 5, 12},
    {11, 5, 12},  {11, 6, 12},  {11, 6, 12},  {11, 10, 9}, {11, 10, 9}, {11, 8, 11},  {11, 8, 11},  {11, 12, 8}, {11, 12, 8},  {11, 0, 10},  {11, 0, 10},  {11, 7, 12},  {11, 7, 12}, {11, 11, 0},
    {11, 11, 0},  {11, 10, 10}, {11, 10, 10}, {11, 11, 9}, {11, 11, 9}, {11, 11, 10}, {11, 11, 10}, {11, 0, 11}, {11, 0, 11},  {11, 11, 11}, {11, 11, 11}, {11, 9, 11},  {11, 9, 11}, {11, 10, 11},
    {11, 10, 11}, {11, 12, 0},  {11, 12, 0},  {11, 8, 12}, {11, 8, 12}, {12, 12, 9},  {12, 10, 12}, {12, 9, 12}, {12, 11, 12}, {12, 12, 11}, {12, 0, 12},  {12, 12, 10}, {12, 12, 12}};

 const hcb_t hcb11_1[] = {{0, 0},  {0, 0},  {1, 0},  {1, 0},  {2, 0},  {3, 0},  {4, 0},  {5, 0},  {6, 0},  {7, 0},   {8, 1},   {10, 1},  {12, 1},  {14, 2},  {18, 2},  {22, 2},
                        {26, 2}, {30, 3}, {38, 3}, {46, 3}, {54, 3}, {62, 3}, {70, 3}, {78, 3}, {86, 4}, {102, 4}, {118, 4}, {134, 4}, {150, 5}, {182, 5}, {214, 5}, {246, 7}};

 const hcb_2_pair_t hcb11_2[] = {
    {4, 0, 0},    {4, 1, 1},    {5, 16, 16},  {5, 1, 0},    {5, 0, 1},    {5, 2, 1},    {5, 1, 2},    {5, 2, 2},    {6, 1, 3},    {6, 3, 1},    {6, 3, 2},    {6, 2, 0},    {6, 2, 3},    {6, 0, 2},
    {6, 3, 3},    {6, 3, 3},    {7, 4, 1},    {7, 1, 4},    {7, 4, 2},    {7, 2, 4},    {7, 4, 3},    {7, 3, 4},    {7, 3, 0},    {7, 0, 3},    {7, 5, 1},    {7, 5, 2},    {7, 2, 5},    {7, 4, 4},
    {7, 1, 5},    {7, 5, 3},    {7, 3, 5},    {7, 3, 5},    {7, 5, 4},    {7, 5, 4},    {8, 4, 5},    {8, 6, 2},    {8, 2, 6},    {8, 6, 1},    {8, 6, 3},    {8, 3, 6},    {8, 1, 6},    {8, 4, 16},
    {8, 3, 16},   {8, 16, 5},   {8, 16, 3},   {8, 16, 4},   {8, 6, 4},    {8, 16, 6},   {8, 4, 0},    {8, 4, 6},    {8, 0, 4},    {8, 2, 16},   {8, 5, 5},    {8, 5, 16},   {8, 16, 7},   {8, 16, 2},
    {8, 16, 8},   {8, 2, 7},    {8, 7, 2},    {8, 3, 7},    {8, 6, 5},    {8, 5, 6},    {8, 6, 16},   {8, 16, 10},  {8, 7, 3},    {8, 7, 1},    {8, 16, 9},   {8, 7, 16},   {8, 1, 16},   {8, 1, 7},
    {8, 4, 7},    {8, 16, 11},  {8, 7, 4},    {8, 16, 12},  {8, 8, 16},   {8, 16, 1},   {8, 6, 6},    {8, 9, 16},   {8, 2, 8},    {8, 5, 7},    {8, 10, 16},  {8, 16, 13},  {8, 8, 3},    {8, 8, 2},
    {8, 3, 8},    {8, 5, 0},    {8, 16, 14},  {8, 16, 14},  {8, 11, 16},  {8, 11, 16},  {8, 7, 5},    {8, 7, 5},    {8, 4, 8},    {8, 4, 8},    {8, 6, 7},    {8, 6, 7},    {8, 7, 6},    {8, 7, 6},
    {8, 0, 5},    {8, 0, 5},    {9, 8, 4},    {9, 16, 15},  {9, 12, 16},  {9, 1, 8},    {9, 8, 1},    {9, 14, 16},  {9, 5, 8},    {9, 13, 16},  {9, 3, 9},    {9, 8, 5},    {9, 7, 7},    {9, 2, 9},
    {9, 8, 6},    {9, 9, 2},    {9, 9, 3},    {9, 15, 16},  {9, 4, 9},    {9, 6, 8},    {9, 6, 0},    {9, 9, 4},    {9, 5, 9},    {9, 8, 7},    {9, 7, 8},    {9, 1, 9},    {9, 10, 3},   {9, 0, 6},
    {9, 10, 2},   {9, 9, 1},    {9, 9, 5},    {9, 4, 10},   {9, 2, 10},   {9, 9, 6},    {9, 3, 10},   {9, 6, 9},    {9, 10, 4},   {9, 8, 8},    {9, 10, 5},   {9, 9, 7},    {9, 11, 3},   {9, 1, 10},
    {9, 7, 0},    {9, 10, 6},   {9, 7, 9},    {9, 3, 11},   {9, 5, 10},   {9, 10, 1},   {9, 4, 11},   {9, 11, 2},   {9, 13, 2},   {9, 6, 10},   {9, 13, 3},   {9, 13, 3},   {9, 2, 11},   {9, 2, 11},
    {9, 16, 0},   {9, 16, 0},   {9, 5, 11},   {9, 5, 11},   {9, 11, 5},   {9, 11, 5},   {10, 11, 4},  {10, 9, 8},   {10, 7, 10},  {10, 8, 9},   {10, 0, 16},  {10, 4, 13},  {10, 0, 7},   {10, 3, 13},
    {10, 11, 6},  {10, 13, 1},  {10, 13, 4},  {10, 12, 3},  {10, 2, 13},  {10, 13, 5},  {10, 8, 10},  {10, 6, 11},  {10, 10, 8},  {10, 10, 7},  {10, 14, 2},  {10, 12, 4},  {10, 1, 11},  {10, 4, 12},
    {10, 11, 1},  {10, 3, 12},  {10, 1, 13},  {10, 12, 2},  {10, 7, 11},  {10, 3, 14},  {10, 5, 12},  {10, 5, 13},  {10, 14, 4},  {10, 4, 14},  {10, 11, 7},  {10, 14, 3},  {10, 12, 5},  {10, 13, 6},
    {10, 12, 6},  {10, 8, 0},   {10, 11, 8},  {10, 2, 12},  {10, 9, 9},   {10, 14, 5},  {10, 6, 13},  {10, 10, 10}, {10, 15, 2},  {10, 8, 11},  {10, 9, 10},  {10, 14, 6},  {10, 10, 9},  {10, 5, 14},
    {10, 11, 9},  {10, 14, 1},  {10, 2, 14},  {10, 6, 12},  {10, 1, 12},  {10, 13, 8},  {10, 0, 8},   {10, 13, 7},  {10, 7, 12},  {10, 12, 7},  {10, 7, 13},  {10, 15, 3},  {10, 12, 1},  {10, 6, 14},
    {10, 2, 15},  {10, 15, 5},  {10, 15, 4},  {10, 1, 14},  {10, 9, 11},  {10, 4, 15},  {10, 14, 7},  {10, 8, 13},  {10, 13, 9},  {10, 8, 12},  {10, 5, 15},  {10, 3, 15},  {10, 10, 11}, {10, 11, 10},
    {10, 12, 8},  {10, 15, 6},  {10, 15, 7},  {10, 8, 14},  {10, 15, 1},  {10, 7, 14},  {10, 9, 0},   {10, 0, 9},   {10, 9, 13},  {10, 9, 13},  {10, 9, 13},  {10, 9, 13},  {10, 9, 12},  {10, 9, 12},
    {10, 9, 12},  {10, 9, 12},  {10, 12, 9},  {10, 12, 9},  {10, 12, 9},  {10, 12, 9},  {10, 14, 8},  {10, 14, 8},  {10, 14, 8},  {10, 14, 8},  {10, 10, 13}, {10, 10, 13}, {10, 10, 13}, {10, 10, 13},
    {10, 14, 9},  {10, 14, 9},  {10, 14, 9},  {10, 14, 9},  {10, 12, 10}, {10, 12, 10}, {10, 12, 10}, {10, 12, 10}, {10, 6, 15},  {10, 6, 15},  {10, 6, 15},  {10, 6, 15},  {10, 7, 15},  {10, 7, 15},
    {10, 7, 15},  {10, 7, 15},  {11, 9, 14},  {11, 9, 14},  {11, 15, 8},  {11, 15, 8},  {11, 11, 11}, {11, 11, 11}, {11, 11, 14}, {11, 11, 14}, {11, 1, 15},  {11, 1, 15},  {11, 10, 12}, {11, 10, 12},
    {11, 10, 14}, {11, 10, 14}, {11, 13, 11}, {11, 13, 11}, {11, 13, 10}, {11, 13, 10}, {11, 11, 13}, {11, 11, 13}, {11, 11, 12}, {11, 11, 12}, {11, 8, 15},  {11, 8, 15},  {11, 14, 11}, {11, 14, 11},
    {11, 13, 12}, {11, 13, 12}, {11, 12, 13}, {11, 12, 13}, {11, 15, 9},  {11, 15, 9},  {11, 14, 10}, {11, 14, 10}, {11, 10, 0},  {11, 10, 0},  {11, 12, 11}, {11, 12, 11}, {11, 9, 15},  {11, 9, 15},
    {11, 0, 10},  {11, 0, 10},  {11, 12, 12}, {11, 12, 12}, {11, 11, 0},  {11, 11, 0},  {11, 12, 14}, {11, 12, 14}, {11, 10, 15}, {11, 10, 15}, {11, 13, 13}, {11, 13, 13}, {11, 0, 13},  {11, 0, 13},
    {11, 14, 12}, {11, 14, 12}, {11, 15, 10}, {11, 15, 10}, {11, 15, 11}, {11, 15, 11}, {11, 11, 15}, {11, 11, 15}, {11, 14, 13}, {11, 14, 13}, {11, 13, 0},  {11, 13, 0},  {11, 0, 11},  {11, 0, 11},
    {11, 13, 14}, {11, 13, 14}, {11, 15, 12}, {11, 15, 12}, {11, 15, 13}, {11, 15, 13}, {11, 12, 15}, {11, 12, 15}, {11, 14, 0},  {11, 14, 0},  {11, 14, 14}, {11, 14, 14}, {11, 13, 15}, {11, 13, 15},
    {11, 12, 0},  {11, 12, 0},  {11, 14, 15}, {11, 14, 15}, {12, 0, 14},  {12, 0, 12},  {12, 15, 14}, {12, 15, 0},  {12, 0, 15},  {12, 15, 15}};

 const hcb_t hcb2_1[] = {{0, 0},  {0, 0},  {0, 0},  {0, 0},  {1, 0},  {1, 0},  {2, 0},  {3, 0},  {4, 0},  {5, 0},  {6, 0},  {7, 0},  {8, 0},  {9, 1},  {11, 1}, {13, 1},
                       {15, 1}, {17, 1}, {19, 1}, {21, 1}, {23, 1}, {25, 1}, {27, 1}, {29, 1}, {31, 1}, {33, 2}, {37, 2}, {41, 2}, {45, 3}, {53, 3}, {61, 3}, {69, 4}};

 const hcb_2_quad_t hcb2_2[] = {{3, 0, 0, 0, 0},     {4, 1, 0, 0, 0},    {5, -1, 0, 0, 0},   {5, 0, 0, 0, 1},   {5, 0, 0, -1, 0},   {5, 0, 0, 0, -1},  {5, 0, -1, 0, 0},   {5, 0, 0, 1, 0},
                              {5, 0, 1, 0, 0},     {6, 0, -1, 1, 0},   {6, -1, 1, 0, 0},   {6, 0, 1, -1, 0},  {6, 0, 0, 1, -1},   {6, 0, 1, 0, -1},  {6, 0, 0, -1, 1},   {6, -1, 0, 0, -1},
                              {6, 1, -1, 0, 0},    {6, 1, 0, -1, 0},   {6, -1, -1, 0, 0},  {6, 0, 0, -1, -1}, {6, 1, 0, 1, 0},    {6, 1, 0, 0, 1},   {6, 0, -1, 0, 1},   {6, -1, 0, 1, 0},
                              {6, 0, 1, 0, 1},     {6, 0, -1, -1, 0},  {6, -1, 0, 0, 1},   {6, 0, -1, 0, -1}, {6, -1, 0, -1, 0},  {6, 1, 1, 0, 0},   {6, 0, 1, 1, 0},    {6, 0, 0, 1, 1},
                              {6, 1, 0, 0, -1},    {7, 0, 1, -1, 1},   {7, 1, 0, -1, 1},   {7, -1, 1, -1, 0}, {7, 0, -1, 1, -1},  {7, 1, -1, 1, 0},  {7, 1, 1, 0, -1},   {7, 1, 0, 1, 1},
                              {7, -1, 1, 1, 0},    {7, 0, -1, -1, 1},  {7, 1, 1, 1, 0},    {7, -1, 0, 1, -1}, {7, -1, -1, -1, 0}, {7, -1, 0, -1, 1}, {7, -1, 0, -1, 1},  {7, 1, -1, -1, 0},
                              {7, 1, -1, -1, 0},   {7, 1, 1, -1, 0},   {7, 1, 1, -1, 0},   {8, 1, -1, 0, 1},  {8, -1, 1, 0, -1},  {8, -1, -1, 1, 0}, {8, -1, 0, 1, 1},   {8, -1, -1, 0, 1},
                              {8, -1, -1, 0, -1},  {8, 0, -1, -1, -1}, {8, 1, 0, 1, -1},   {8, 1, 0, -1, -1}, {8, 0, 1, -1, -1},  {8, 0, 1, 1, 1},   {8, -1, 1, 0, 1},   {8, -1, 0, -1, -1},
                              {8, 0, 1, 1, -1},    {8, 1, -1, 0, -1},  {8, 0, -1, 1, 1},   {8, 1, 1, 0, 1},   {8, 1, -1, 1, -1},  {8, -1, 1, -1, 1}, {8, -1, 1, -1, 1},  {9, 1, -1, -1, 1},
                              {9, -1, -1, -1, -1}, {9, -1, 1, 1, -1},  {9, -1, 1, 1, 1},   {9, 1, 1, 1, 1},   {9, -1, -1, 1, -1}, {9, 1, -1, 1, 1},  {9, -1, 1, -1, -1}, {9, -1, -1, 1, 1},
                              {9, 1, 1, -1, -1},   {9, 1, -1, -1, -1}, {9, -1, -1, -1, 1}, {9, 1, 1, -1, 1},  {9, 1, 1, 1, -1}};

 const hcb_bin_quad_t hcb3[] = {
    {0, {1, 2, 0, 0}},   {1, {0, 0, 0, 0}},   {0, {1, 2, 0, 0}},   {0, {2, 3, 0, 0}},   {0, {3, 4, 0, 0}},   {0, {4, 5, 0, 0}},   {0, {5, 6, 0, 0}},   {0, {6, 7, 0, 0}},   {0, {7, 8, 0, 0}},
    {1, {1, 0, 0, 0}},   {1, {0, 0, 0, 1}},   {1, {0, 1, 0, 0}},   {1, {0, 0, 1, 0}},   {0, {4, 5, 0, 0}},   {0, {5, 6, 0, 0}},   {0, {6, 7, 0, 0}},   {0, {7, 8, 0, 0}},   {1, {1, 1, 0, 0}},
    {1, {0, 0, 1, 1}},   {0, {6, 7, 0, 0}},   {0, {7, 8, 0, 0}},   {0, {8, 9, 0, 0}},   {0, {9, 10, 0, 0}},  {0, {10, 11, 0, 0}}, {0, {11, 12, 0, 0}}, {1, {0, 1, 1, 0}},   {1, {0, 1, 0, 1}},
    {1, {1, 0, 1, 0}},   {1, {0, 1, 1, 1}},   {1, {1, 0, 0, 1}},   {1, {1, 1, 1, 0}},   {0, {6, 7, 0, 0}},   {0, {7, 8, 0, 0}},   {0, {8, 9, 0, 0}},   {0, {9, 10, 0, 0}},  {0, {10, 11, 0, 0}},
    {0, {11, 12, 0, 0}}, {1, {1, 1, 1, 1}},   {1, {1, 0, 1, 1}},   {1, {1, 1, 0, 1}},   {0, {9, 10, 0, 0}},  {0, {10, 11, 0, 0}}, {0, {11, 12, 0, 0}}, {0, {12, 13, 0, 0}}, {0, {13, 14, 0, 0}},
    {0, {14, 15, 0, 0}}, {0, {15, 16, 0, 0}}, {0, {16, 17, 0, 0}}, {0, {17, 18, 0, 0}}, {1, {2, 0, 0, 0}},   {1, {0, 0, 0, 2}},   {1, {0, 0, 1, 2}},   {1, {2, 1, 0, 0}},   {1, {1, 2, 1, 0}},
    {0, {13, 14, 0, 0}}, {0, {14, 15, 0, 0}}, {0, {15, 16, 0, 0}}, {0, {16, 17, 0, 0}}, {0, {17, 18, 0, 0}}, {0, {18, 19, 0, 0}}, {0, {19, 20, 0, 0}}, {0, {20, 21, 0, 0}}, {0, {21, 22, 0, 0}},
    {0, {22, 23, 0, 0}}, {0, {23, 24, 0, 0}}, {0, {24, 25, 0, 0}}, {0, {25, 26, 0, 0}}, {1, {0, 0, 2, 1}},   {1, {0, 1, 2, 1}},   {1, {1, 2, 0, 0}},   {1, {0, 1, 1, 2}},   {1, {2, 1, 1, 0}},
    {1, {0, 0, 2, 0}},   {1, {0, 2, 1, 0}},   {1, {0, 1, 2, 0}},   {1, {0, 2, 0, 0}},   {1, {0, 1, 0, 2}},   {1, {2, 0, 1, 0}},   {1, {1, 2, 1, 1}},   {1, {0, 2, 1, 1}},   {1, {1, 1, 2, 0}},
    {1, {1, 1, 2, 1}},   {0, {11, 12, 0, 0}}, {0, {12, 13, 0, 0}}, {0, {13, 14, 0, 0}}, {0, {14, 15, 0, 0}}, {0, {15, 16, 0, 0}}, {0, {16, 17, 0, 0}}, {0, {17, 18, 0, 0}}, {0, {18, 19, 0, 0}},
    {0, {19, 20, 0, 0}}, {0, {20, 21, 0, 0}}, {0, {21, 22, 0, 0}}, {1, {1, 2, 0, 1}},   {1, {1, 0, 2, 0}},   {1, {1, 0, 2, 1}},   {1, {0, 2, 0, 1}},   {1, {2, 1, 1, 1}},   {1, {1, 1, 1, 2}},
    {1, {2, 1, 0, 1}},   {1, {1, 0, 1, 2}},   {1, {0, 0, 2, 2}},   {1, {0, 1, 2, 2}},   {1, {2, 2, 1, 0}},   {1, {1, 2, 2, 0}},   {1, {1, 0, 0, 2}},   {1, {2, 0, 0, 1}},   {1, {0, 2, 2, 1}},
    {0, {7, 8, 0, 0}},   {0, {8, 9, 0, 0}},   {0, {9, 10, 0, 0}},  {0, {10, 11, 0, 0}}, {0, {11, 12, 0, 0}}, {0, {12, 13, 0, 0}}, {0, {13, 14, 0, 0}}, {1, {2, 2, 0, 0}},   {1, {1, 2, 2, 1}},
    {1, {1, 1, 0, 2}},   {1, {2, 0, 1, 1}},   {1, {1, 1, 2, 2}},   {1, {2, 2, 1, 1}},   {1, {0, 2, 2, 0}},   {1, {0, 2, 1, 2}},   {0, {6, 7, 0, 0}},   {0, {7, 8, 0, 0}},   {0, {8, 9, 0, 0}},
    {0, {9, 10, 0, 0}},  {0, {10, 11, 0, 0}}, {0, {11, 12, 0, 0}}, {1, {1, 0, 2, 2}},   {1, {2, 2, 0, 1}},   {1, {2, 1, 2, 0}},   {1, {2, 2, 2, 0}},   {1, {0, 2, 2, 2}},   {1, {2, 2, 2, 1}},
    {1, {2, 1, 2, 1}},   {1, {1, 2, 1, 2}},   {1, {1, 2, 2, 2}},   {0, {3, 4, 0, 0}},   {0, {4, 5, 0, 0}},   {0, {5, 6, 0, 0}},   {1, {0, 2, 0, 2}},   {1, {2, 0, 2, 0}},   {1, {1, 2, 0, 2}},
    {0, {3, 4, 0, 0}},   {0, {4, 5, 0, 0}},   {0, {5, 6, 0, 0}},   {1, {2, 0, 2, 1}},   {1, {2, 1, 1, 2}},   {1, {2, 1, 0, 2}},   {0, {3, 4, 0, 0}},   {0, {4, 5, 0, 0}},   {0, {5, 6, 0, 0}},
    {1, {2, 2, 2, 2}},   {1, {2, 2, 1, 2}},   {1, {2, 1, 2, 2}},   {1, {2, 0, 1, 2}},   {1, {2, 0, 0, 2}},   {0, {1, 2, 0, 0}},   {1, {2, 2, 0, 2}},   {1, {2, 0, 2, 2}}};

 const hcb_t hcb4_1[] = {{0, 0}, {0, 0}, {1, 0}, {1, 0}, {2, 0},  {2, 0},  {3, 0},  {3, 0},  {4, 0},  {4, 0},  {5, 0},  {5, 0},  {6, 0},  {6, 0},  {7, 0},  {7, 0},
                       {8, 0}, {8, 0}, {9, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 2}, {20, 2}, {24, 3}, {32, 3}, {40, 4}, {56, 7}};

 const hcb_2_quad_t hcb4_2[] = {
    {4, 1, 1, 1, 1},  {4, 0, 1, 1, 1},  {4, 1, 1, 0, 1},  {4, 1, 1, 1, 0},  {4, 1, 0, 1, 1},  {4, 1, 0, 0, 0},  {4, 1, 1, 0, 0},  {4, 0, 0, 0, 0},  {4, 0, 0, 1, 1},  {4, 1, 0, 1, 0},
    {5, 1, 0, 0, 1},  {5, 0, 1, 1, 0},  {5, 0, 0, 0, 1},  {5, 0, 1, 0, 1},  {5, 0, 0, 1, 0},  {5, 0, 1, 0, 0},  {7, 2, 1, 1, 1},  {7, 1, 1, 2, 1},  {7, 1, 2, 1, 1},  {7, 1, 1, 1, 2},
    {7, 2, 1, 1, 0},  {7, 2, 1, 0, 1},  {7, 1, 2, 1, 0},  {7, 2, 0, 1, 1},  {7, 0, 1, 2, 1},  {7, 0, 1, 2, 1},  {8, 0, 1, 1, 2},  {8, 1, 1, 2, 0},  {8, 0, 2, 1, 1},  {8, 1, 0, 1, 2},
    {8, 1, 2, 0, 1},  {8, 1, 1, 0, 2},  {8, 1, 0, 2, 1},  {8, 2, 1, 0, 0},  {8, 2, 0, 1, 0},  {8, 1, 2, 0, 0},  {8, 2, 0, 0, 1},  {8, 0, 1, 0, 2},  {8, 0, 2, 1, 0},  {8, 0, 0, 1, 2},
    {8, 0, 1, 2, 0},  {8, 0, 1, 2, 0},  {8, 0, 2, 0, 1},  {8, 0, 2, 0, 1},  {8, 1, 0, 0, 2},  {8, 1, 0, 0, 2},  {8, 0, 0, 2, 1},  {8, 0, 0, 2, 1},  {8, 1, 0, 2, 0},  {8, 1, 0, 2, 0},
    {8, 2, 0, 0, 0},  {8, 2, 0, 0, 0},  {8, 0, 0, 0, 2},  {8, 0, 0, 0, 2},  {9, 0, 2, 0, 0},  {9, 0, 0, 2, 0},  {9, 1, 2, 2, 1},  {9, 1, 2, 2, 1},  {9, 1, 2, 2, 1},  {9, 1, 2, 2, 1},
    {9, 1, 2, 2, 1},  {9, 1, 2, 2, 1},  {9, 1, 2, 2, 1},  {9, 1, 2, 2, 1},  {9, 2, 2, 1, 1},  {9, 2, 2, 1, 1},  {9, 2, 2, 1, 1},  {9, 2, 2, 1, 1},  {9, 2, 2, 1, 1},  {9, 2, 2, 1, 1},
    {9, 2, 2, 1, 1},  {9, 2, 2, 1, 1},  {9, 2, 1, 2, 1},  {9, 2, 1, 2, 1},  {9, 2, 1, 2, 1},  {9, 2, 1, 2, 1},  {9, 2, 1, 2, 1},  {9, 2, 1, 2, 1},  {9, 2, 1, 2, 1},  {9, 2, 1, 2, 1},
    {9, 1, 1, 2, 2},  {9, 1, 1, 2, 2},  {9, 1, 1, 2, 2},  {9, 1, 1, 2, 2},  {9, 1, 1, 2, 2},  {9, 1, 1, 2, 2},  {9, 1, 1, 2, 2},  {9, 1, 1, 2, 2},  {9, 1, 2, 1, 2},  {9, 1, 2, 1, 2},
    {9, 1, 2, 1, 2},  {9, 1, 2, 1, 2},  {9, 1, 2, 1, 2},  {9, 1, 2, 1, 2},  {9, 1, 2, 1, 2},  {9, 1, 2, 1, 2},  {9, 2, 1, 1, 2},  {9, 2, 1, 1, 2},  {9, 2, 1, 1, 2},  {9, 2, 1, 1, 2},
    {9, 2, 1, 1, 2},  {9, 2, 1, 1, 2},  {9, 2, 1, 1, 2},  {9, 2, 1, 1, 2},  {10, 1, 2, 2, 0}, {10, 1, 2, 2, 0}, {10, 1, 2, 2, 0}, {10, 1, 2, 2, 0}, {10, 2, 2, 1, 0}, {10, 2, 2, 1, 0},
    {10, 2, 2, 1, 0}, {10, 2, 2, 1, 0}, {10, 2, 1, 2, 0}, {10, 2, 1, 2, 0}, {10, 2, 1, 2, 0}, {10, 2, 1, 2, 0}, {10, 0, 2, 2, 1}, {10, 0, 2, 2, 1}, {10, 0, 2, 2, 1}, {10, 0, 2, 2, 1},
    {10, 0, 1, 2, 2}, {10, 0, 1, 2, 2}, {10, 0, 1, 2, 2}, {10, 0, 1, 2, 2}, {10, 2, 2, 0, 1}, {10, 2, 2, 0, 1}, {10, 2, 2, 0, 1}, {10, 2, 2, 0, 1}, {10, 0, 2, 1, 2}, {10, 0, 2, 1, 2},
    {10, 0, 2, 1, 2}, {10, 0, 2, 1, 2}, {10, 2, 0, 2, 1}, {10, 2, 0, 2, 1}, {10, 2, 0, 2, 1}, {10, 2, 0, 2, 1}, {10, 1, 0, 2, 2}, {10, 1, 0, 2, 2}, {10, 1, 0, 2, 2}, {10, 1, 0, 2, 2},
    {10, 2, 2, 2, 1}, {10, 2, 2, 2, 1}, {10, 2, 2, 2, 1}, {10, 2, 2, 2, 1}, {10, 1, 2, 0, 2}, {10, 1, 2, 0, 2}, {10, 1, 2, 0, 2}, {10, 1, 2, 0, 2}, {10, 2, 0, 1, 2}, {10, 2, 0, 1, 2},
    {10, 2, 0, 1, 2}, {10, 2, 0, 1, 2}, {10, 2, 1, 0, 2}, {10, 2, 1, 0, 2}, {10, 2, 1, 0, 2}, {10, 2, 1, 0, 2}, {10, 1, 2, 2, 2}, {10, 1, 2, 2, 2}, {10, 1, 2, 2, 2}, {10, 1, 2, 2, 2},
    {11, 2, 1, 2, 2}, {11, 2, 1, 2, 2}, {11, 2, 2, 1, 2}, {11, 2, 2, 1, 2}, {11, 0, 2, 2, 0}, {11, 0, 2, 2, 0}, {11, 2, 2, 0, 0}, {11, 2, 2, 0, 0}, {11, 0, 0, 2, 2}, {11, 0, 0, 2, 2},
    {11, 2, 0, 2, 0}, {11, 2, 0, 2, 0}, {11, 0, 2, 0, 2}, {11, 0, 2, 0, 2}, {11, 2, 0, 0, 2}, {11, 2, 0, 0, 2}, {11, 2, 2, 2, 2}, {11, 2, 2, 2, 2}, {11, 0, 2, 2, 2}, {11, 0, 2, 2, 2},
    {11, 2, 2, 2, 0}, {11, 2, 2, 2, 0}, {12, 2, 2, 0, 2}, {12, 2, 0, 2, 2},
};

 const hcb_bin_pair_t hcb5[] = {
    {0, {1, 2}},   {1, {0, 0}},   {0, {1, 2}},   {0, {2, 3}},   {0, {3, 4}},   {0, {4, 5}},   {0, {5, 6}},   {0, {6, 7}},   {0, {7, 8}},   {1, {-1, 0}},  {1, {1, 0}},   {1, {0, 1}},   {1, {0, -1}},
    {0, {4, 5}},   {0, {5, 6}},   {0, {6, 7}},   {0, {7, 8}},   {1, {1, -1}},  {1, {-1, 1}},  {1, {-1, -1}}, {1, {1, 1}},   {0, {4, 5}},   {0, {5, 6}},   {0, {6, 7}},   {0, {7, 8}},   {0, {8, 9}},
    {0, {9, 10}},  {0, {10, 11}}, {0, {11, 12}}, {0, {12, 13}}, {0, {13, 14}}, {0, {14, 15}}, {0, {15, 16}}, {1, {-2, 0}},  {1, {0, 2}},   {1, {2, 0}},   {1, {0, -2}},  {0, {12, 13}}, {0, {13, 14}},
    {0, {14, 15}}, {0, {15, 16}}, {0, {16, 17}}, {0, {17, 18}}, {0, {18, 19}}, {0, {19, 20}}, {0, {20, 21}}, {0, {21, 22}}, {0, {22, 23}}, {0, {23, 24}}, {1, {-2, -1}}, {1, {2, 1}},   {1, {-1, -2}},
    {1, {1, 2}},   {1, {-2, 1}},  {1, {2, -1}},  {1, {-1, 2}},  {1, {1, -2}},  {1, {-3, 0}},  {1, {3, 0}},   {1, {0, -3}},  {1, {0, 3}},   {0, {12, 13}}, {0, {13, 14}}, {0, {14, 15}}, {0, {15, 16}},
    {0, {16, 17}}, {0, {17, 18}}, {0, {18, 19}}, {0, {19, 20}}, {0, {20, 21}}, {0, {21, 22}}, {0, {22, 23}}, {0, {23, 24}}, {1, {-3, -1}}, {1, {1, 3}},   {1, {3, 1}},   {1, {-1, -3}}, {1, {-3, 1}},
    {1, {3, -1}},  {1, {1, -3}},  {1, {-1, 3}},  {1, {-2, 2}},  {1, {2, 2}},   {1, {-2, -2}}, {1, {2, -2}},  {0, {12, 13}}, {0, {13, 14}}, {0, {14, 15}}, {0, {15, 16}}, {0, {16, 17}}, {0, {17, 18}},
    {0, {18, 19}}, {0, {19, 20}}, {0, {20, 21}}, {0, {21, 22}}, {0, {22, 23}}, {0, {23, 24}}, {1, {-3, -2}}, {1, {3, -2}},  {1, {-2, 3}},  {1, {2, -3}},  {1, {3, 2}},   {1, {2, 3}},   {1, {-3, 2}},
    {1, {-2, -3}}, {1, {0, -4}},  {1, {-4, 0}},  {1, {4, 1}},   {1, {4, 0}},   {0, {12, 13}}, {0, {13, 14}}, {0, {14, 15}}, {0, {15, 16}}, {0, {16, 17}}, {0, {17, 18}}, {0, {18, 19}}, {0, {19, 20}},
    {0, {20, 21}}, {0, {21, 22}}, {0, {22, 23}}, {0, {23, 24}}, {1, {-4, -1}}, {1, {0, 4}},   {1, {4, -1}},  {1, {-1, -4}}, {1, {1, 4}},   {1, {-1, 4}},  {1, {-4, 1}},  {1, {1, -4}},  {1, {3, -3}},
    {1, {-3, -3}}, {1, {-3, 3}},  {1, {-2, 4}},  {1, {-4, -2}}, {1, {4, 2}},   {1, {2, -4}},  {1, {2, 4}},   {1, {3, 3}},   {1, {-4, 2}},  {0, {6, 7}},   {0, {7, 8}},   {0, {8, 9}},   {0, {9, 10}},
    {0, {10, 11}}, {0, {11, 12}}, {1, {-2, -4}}, {1, {4, -2}},  {1, {3, -4}},  {1, {-4, -3}}, {1, {-4, 3}},  {1, {3, 4}},   {1, {-3, 4}},  {1, {4, 3}},   {1, {4, -3}},  {1, {-3, -4}}, {0, {2, 3}},
    {0, {3, 4}},   {1, {4, -4}},  {1, {-4, 4}},  {1, {4, 4}},   {1, {-4, -4}}};

 const hcb_t hcb6_1[] = {{0, 0}, {0, 0}, {1, 0}, {1, 0},  {2, 0},  {2, 0},  {3, 0},  {3, 0},  {4, 0},  {4, 0},  {5, 0},  {5, 0},  {6, 0},  {6, 0},  {7, 0},  {7, 0},
                       {8, 0}, {8, 0}, {9, 1}, {11, 1}, {13, 1}, {15, 1}, {17, 1}, {19, 1}, {21, 1}, {23, 1}, {25, 2}, {29, 2}, {33, 2}, {37, 3}, {45, 4}, {61, 6}};

 const hcb_2_pair_t hcb6_2[] = {
    {4, 0, 0},   {4, 1, 0},   {4, 0, -1},  {4, 0, 1},   {4, -1, 0},  {4, 1, 1},   {4, -1, 1},  {4, 1, -1},   {4, -1, -1},  {6, 2, -1},  {6, 2, 1},   {6, -2, 1},   {6, -2, -1}, {6, -2, 0},
    {6, -1, 2},  {6, 2, 0},   {6, 1, -2},  {6, 1, 2},   {6, 0, -2},  {6, -1, -2}, {6, 0, 2},   {6, 2, -2},   {6, -2, 2},   {6, -2, -2}, {6, 2, 2},   {7, -3, 1},   {7, 3, 1},   {7, 3, -1},
    {7, -1, 3},  {7, -3, -1}, {7, 1, 3},   {7, 1, -3},  {7, -1, -3}, {7, 3, 0},   {7, -3, 0},  {7, 0, -3},   {7, 0, 3},    {7, 3, 2},   {7, 3, 2},   {8, -3, -2},  {8, -2, 3},  {8, 2, 3},
    {8, 3, -2},  {8, 2, -3},  {8, -2, -3}, {8, -3, 2},  {8, -3, 2},  {8, 3, 3},   {8, 3, 3},   {9, 3, -3},   {9, -3, -3},  {9, -3, 3},  {9, 1, -4},  {9, -1, -4},  {9, 4, 1},   {9, -4, 1},
    {9, -4, -1}, {9, 1, 4},   {9, 4, -1},  {9, -1, 4},  {9, 0, -4},  {9, -4, 2},  {9, -4, 2},  {9, -4, 2},   {9, -4, 2},   {9, -4, -2}, {9, -4, -2}, {9, -4, -2},  {9, -4, -2}, {9, 2, 4},
    {9, 2, 4},   {9, 2, 4},   {9, 2, 4},   {9, -2, -4}, {9, -2, -4}, {9, -2, -4}, {9, -2, -4}, {9, -4, 0},   {9, -4, 0},   {9, -4, 0},  {9, -4, 0},  {9, 4, 2},    {9, 4, 2},   {9, 4, 2},
    {9, 4, 2},   {9, 4, -2},  {9, 4, -2},  {9, 4, -2},  {9, 4, -2},  {9, -2, 4},  {9, -2, 4},  {9, -2, 4},   {9, -2, 4},   {9, 4, 0},   {9, 4, 0},   {9, 4, 0},    {9, 4, 0},   {9, 2, -4},
    {9, 2, -4},  {9, 2, -4},  {9, 2, -4},  {9, 0, 4},   {9, 0, 4},   {9, 0, 4},   {9, 0, 4},   {10, -3, -4}, {10, -3, -4}, {10, -3, 4}, {10, -3, 4}, {10, 3, -4},  {10, 3, -4}, {10, 4, -3},
    {10, 4, -3}, {10, 3, 4},  {10, 3, 4},  {10, 4, 3},  {10, 4, 3},  {10, -4, 3}, {10, -4, 3}, {10, -4, -3}, {10, -4, -3}, {11, 4, 4},  {11, -4, 4}, {11, -4, -4}, {11, 4, -4}};

 const hcb_bin_pair_t hcb7[] = {
    {0, {1, 2}},   {1, {0, 0}},   {0, {1, 2}},   {0, {2, 3}},   {0, {3, 4}},   {1, {1, 0}},   {1, {0, 1}},   {0, {2, 3}},   {0, {3, 4}},   {1, {1, 1}},   {0, {3, 4}},   {0, {4, 5}},   {0, {5, 6}},
    {0, {6, 7}},   {0, {7, 8}},   {0, {8, 9}},   {0, {9, 10}},  {0, {10, 11}}, {0, {11, 12}}, {1, {2, 1}},   {1, {1, 2}},   {1, {2, 0}},   {1, {0, 2}},   {0, {8, 9}},   {0, {9, 10}},  {0, {10, 11}},
    {0, {11, 12}}, {0, {12, 13}}, {0, {13, 14}}, {0, {14, 15}}, {0, {15, 16}}, {1, {3, 1}},   {1, {1, 3}},   {1, {2, 2}},   {1, {3, 0}},   {1, {0, 3}},   {0, {11, 12}}, {0, {12, 13}}, {0, {13, 14}},
    {0, {14, 15}}, {0, {15, 16}}, {0, {16, 17}}, {0, {17, 18}}, {0, {18, 19}}, {0, {19, 20}}, {0, {20, 21}}, {0, {21, 22}}, {1, {2, 3}},   {1, {3, 2}},   {1, {1, 4}},   {1, {4, 1}},   {1, {1, 5}},
    {1, {5, 1}},   {1, {3, 3}},   {1, {2, 4}},   {1, {0, 4}},   {1, {4, 0}},   {0, {12, 13}}, {0, {13, 14}}, {0, {14, 15}}, {0, {15, 16}}, {0, {16, 17}}, {0, {17, 18}}, {0, {18, 19}}, {0, {19, 20}},
    {0, {20, 21}}, {0, {21, 22}}, {0, {22, 23}}, {0, {23, 24}}, {1, {4, 2}},   {1, {2, 5}},   {1, {5, 2}},   {1, {0, 5}},   {1, {6, 1}},   {1, {5, 0}},   {1, {1, 6}},   {1, {4, 3}},   {1, {3, 5}},
    {1, {3, 4}},   {1, {5, 3}},   {1, {2, 6}},   {1, {6, 2}},   {1, {1, 7}},   {0, {10, 11}}, {0, {11, 12}}, {0, {12, 13}}, {0, {13, 14}}, {0, {14, 15}}, {0, {15, 16}}, {0, {16, 17}}, {0, {17, 18}},
    {0, {18, 19}}, {0, {19, 20}}, {1, {3, 6}},   {1, {0, 6}},   {1, {6, 0}},   {1, {4, 4}},   {1, {7, 1}},   {1, {4, 5}},   {1, {7, 2}},   {1, {5, 4}},   {1, {6, 3}},   {1, {2, 7}},   {1, {7, 3}},
    {1, {6, 4}},   {1, {5, 5}},   {1, {4, 6}},   {1, {3, 7}},   {0, {5, 6}},   {0, {6, 7}},   {0, {7, 8}},   {0, {8, 9}},   {0, {9, 10}},  {1, {7, 0}},   {1, {0, 7}},   {1, {6, 5}},   {1, {5, 6}},
    {1, {7, 4}},   {1, {4, 7}},   {1, {5, 7}},   {1, {7, 5}},   {0, {2, 3}},   {0, {3, 4}},   {1, {7, 6}},   {1, {6, 6}},   {1, {6, 7}},   {1, {7, 7}}};

 const hcb_t hcb8_1[] = {{0, 0}, {0, 0}, {0, 0},  {0, 0},  {1, 0},  {1, 0},  {2, 0},  {2, 0},  {3, 0},  {3, 0},  {4, 0},  {4, 0},  {5, 0},  {5, 0},  {6, 0},  {7, 0},
                       {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 1}, {15, 1}, {17, 1}, {19, 1}, {21, 1}, {23, 2}, {27, 2}, {31, 2}, {35, 3}, {43, 3}, {51, 5}};

 const hcb_2_pair_t hcb8_2[] = {{3, 1, 1}, {4, 2, 1}, {4, 1, 0}, {4, 1, 2}, {4, 0, 1}, {4, 2, 2}, {5, 0, 0}, {5, 2, 0}, {5, 0, 2}, {5, 3, 1},  {5, 1, 3},  {5, 3, 2},  {5, 2, 3}, {6, 3, 3},
                              {6, 4, 1}, {6, 1, 4}, {6, 4, 2}, {6, 2, 4}, {6, 3, 0}, {6, 0, 3}, {6, 4, 3}, {6, 3, 4}, {6, 5, 2}, {7, 5, 1},  {7, 2, 5},  {7, 1, 5},  {7, 5, 3}, {7, 3, 5},
                              {7, 4, 4}, {7, 5, 4}, {7, 0, 4}, {7, 4, 5}, {7, 4, 0}, {7, 2, 6}, {7, 6, 2}, {7, 6, 1}, {7, 6, 1}, {7, 1, 6},  {7, 1, 6},  {8, 3, 6},  {8, 6, 3}, {8, 5, 5},
                              {8, 5, 0}, {8, 6, 4}, {8, 0, 5}, {8, 4, 6}, {8, 7, 1}, {8, 7, 2}, {8, 2, 7}, {8, 6, 5}, {8, 7, 3}, {8, 1, 7},  {8, 1, 7},  {8, 1, 7},  {8, 1, 7}, {8, 5, 6},
                              {8, 5, 6}, {8, 5, 6}, {8, 5, 6}, {8, 3, 7}, {8, 3, 7}, {8, 3, 7}, {8, 3, 7}, {9, 6, 6}, {9, 6, 6}, {9, 7, 4},  {9, 7, 4},  {9, 6, 0},  {9, 6, 0}, {9, 4, 7},
                              {9, 4, 7}, {9, 0, 6}, {9, 0, 6}, {9, 7, 5}, {9, 7, 5}, {9, 7, 6}, {9, 7, 6}, {9, 6, 7}, {9, 6, 7}, {10, 5, 7}, {10, 7, 0}, {10, 0, 7}, {10, 7, 7}};

 const hcb_bin_pair_t hcb9[] = {
    {0, {1, 2}},   {1, {0, 0}},   {0, {1, 2}},   {0, {2, 3}},   {0, {3, 4}},   {1, {1, 0}},   {1, {0, 1}},   {0, {2, 3}},   {0, {3, 4}},   {1, {1, 1}},   {0, {3, 4}},   {0, {4, 5}},   {0, {5, 6}},
    {0, {6, 7}},   {0, {7, 8}},   {0, {8, 9}},   {0, {9, 10}},  {0, {10, 11}}, {0, {11, 12}}, {1, {2, 1}},   {1, {1, 2}},   {1, {2, 0}},   {1, {0, 2}},   {0, {8, 9}},   {0, {9, 10}},  {0, {10, 11}},
    {0, {11, 12}}, {0, {12, 13}}, {0, {13, 14}}, {0, {14, 15}}, {0, {15, 16}}, {1, {3, 1}},   {1, {2, 2}},   {1, {1, 3}},   {0, {13, 14}}, {0, {14, 15}}, {0, {15, 16}}, {0, {16, 17}}, {0, {17, 18}},
    {0, {18, 19}}, {0, {19, 20}}, {0, {20, 21}}, {0, {21, 22}}, {0, {22, 23}}, {0, {23, 24}}, {0, {24, 25}}, {0, {25, 26}}, {1, {3, 0}},   {1, {0, 3}},   {1, {2, 3}},   {1, {3, 2}},   {1, {1, 4}},
    {1, {4, 1}},   {1, {2, 4}},   {1, {1, 5}},   {0, {18, 19}}, {0, {19, 20}}, {0, {20, 21}}, {0, {21, 22}}, {0, {22, 23}}, {0, {23, 24}}, {0, {24, 25}}, {0, {25, 26}}, {0, {26, 27}}, {0, {27, 28}},
    {0, {28, 29}}, {0, {29, 30}}, {0, {30, 31}}, {0, {31, 32}}, {0, {32, 33}}, {0, {33, 34}}, {0, {34, 35}}, {0, {35, 36}}, {1, {4, 2}},   {1, {3, 3}},   {1, {0, 4}},   {1, {4, 0}},   {1, {5, 1}},
    {1, {2, 5}},   {1, {1, 6}},   {1, {3, 4}},   {1, {5, 2}},   {1, {6, 1}},   {1, {4, 3}},   {0, {25, 26}}, {0, {26, 27}}, {0, {27, 28}}, {0, {28, 29}}, {0, {29, 30}}, {0, {30, 31}}, {0, {31, 32}},
    {0, {32, 33}}, {0, {33, 34}}, {0, {34, 35}}, {0, {35, 36}}, {0, {36, 37}}, {0, {37, 38}}, {0, {38, 39}}, {0, {39, 40}}, {0, {40, 41}}, {0, {41, 42}}, {0, {42, 43}}, {0, {43, 44}}, {0, {44, 45}},
    {0, {45, 46}}, {0, {46, 47}}, {0, {47, 48}}, {0, {48, 49}}, {0, {49, 50}}, {1, {0, 5}},   {1, {2, 6}},   {1, {5, 0}},   {1, {1, 7}},   {1, {3, 5}},   {1, {1, 8}},   {1, {8, 1}},   {1, {4, 4}},
    {1, {5, 3}},   {1, {6, 2}},   {1, {7, 1}},   {1, {0, 6}},   {1, {8, 2}},   {1, {2, 8}},   {1, {3, 6}},   {1, {2, 7}},   {1, {4, 5}},   {1, {9, 1}},   {1, {1, 9}},   {1, {7, 2}},   {0, {30, 31}},
    {0, {31, 32}}, {0, {32, 33}}, {0, {33, 34}}, {0, {34, 35}}, {0, {35, 36}}, {0, {36, 37}}, {0, {37, 38}}, {0, {38, 39}}, {0, {39, 40}}, {0, {40, 41}}, {0, {41, 42}}, {0, {42, 43}}, {0, {43, 44}},
    {0, {44, 45}}, {0, {45, 46}}, {0, {46, 47}}, {0, {47, 48}}, {0, {48, 49}}, {0, {49, 50}}, {0, {50, 51}}, {0, {51, 52}}, {0, {52, 53}}, {0, {53, 54}}, {0, {54, 55}}, {0, {55, 56}}, {0, {56, 57}},
    {0, {57, 58}}, {0, {58, 59}}, {0, {59, 60}}, {1, {6, 0}},   {1, {5, 4}},   {1, {6, 3}},   {1, {8, 3}},   {1, {0, 7}},   {1, {9, 2}},   {1, {3, 8}},   {1, {4, 6}},   {1, {3, 7}},   {1, {0, 8}},
    {1, {10, 1}},  {1, {6, 4}},   {1, {2, 9}},   {1, {5, 5}},   {1, {8, 0}},   {1, {7, 0}},   {1, {7, 3}},   {1, {10, 2}},  {1, {9, 3}},   {1, {8, 4}},   {1, {1, 10}},  {1, {7, 4}},   {1, {6, 5}},
    {1, {5, 6}},   {1, {4, 8}},   {1, {4, 7}},   {1, {3, 9}},   {1, {11, 1}},  {1, {5, 8}},   {1, {9, 0}},   {1, {8, 5}},   {0, {29, 30}}, {0, {30, 31}}, {0, {31, 32}}, {0, {32, 33}}, {0, {33, 34}},
    {0, {34, 35}}, {0, {35, 36}}, {0, {36, 37}}, {0, {37, 38}}, {0, {38, 39}}, {0, {39, 40}}, {0, {40, 41}}, {0, {41, 42}}, {0, {42, 43}}, {0, {43, 44}}, {0, {44, 45}}, {0, {45, 46}}, {0, {46, 47}},
    {0, {47, 48}}, {0, {48, 49}}, {0, {49, 50}}, {0, {50, 51}}, {0, {51, 52}}, {0, {52, 53}}, {0, {53, 54}}, {0, {54, 55}}, {0, {55, 56}}, {0, {56, 57}}, {0, {57, 58}}, {1, {10, 3}},  {1, {2, 10}},
    {1, {0, 9}},   {1, {11, 2}},  {1, {9, 4}},   {1, {6, 6}},   {1, {12, 1}},  {1, {4, 9}},   {1, {8, 6}},   {1, {1, 11}},  {1, {9, 5}},   {1, {10, 4}},  {1, {5, 7}},   {1, {7, 5}},   {1, {2, 11}},
    {1, {1, 12}},  {1, {12, 2}},  {1, {11, 3}},  {1, {3, 10}},  {1, {5, 9}},   {1, {6, 7}},   {1, {8, 7}},   {1, {11, 4}},  {1, {0, 10}},  {1, {7, 6}},   {1, {12, 3}},  {1, {10, 0}},  {1, {10, 5}},
    {1, {4, 10}},  {1, {6, 8}},   {1, {2, 12}},  {1, {9, 6}},   {1, {9, 7}},   {1, {4, 11}},  {1, {11, 0}},  {1, {6, 9}},   {1, {3, 11}},  {1, {5, 10}},  {0, {20, 21}}, {0, {21, 22}}, {0, {22, 23}},
    {0, {23, 24}}, {0, {24, 25}}, {0, {25, 26}}, {0, {26, 27}}, {0, {27, 28}}, {0, {28, 29}}, {0, {29, 30}}, {0, {30, 31}}, {0, {31, 32}}, {0, {32, 33}}, {0, {33, 34}}, {0, {34, 35}}, {0, {35, 36}},
    {0, {36, 37}}, {0, {37, 38}}, {0, {38, 39}}, {0, {39, 40}}, {1, {8, 8}},   {1, {7, 8}},   {1, {12, 5}},  {1, {3, 12}},  {1, {11, 5}},  {1, {7, 7}},   {1, {12, 4}},  {1, {11, 6}},  {1, {10, 6}},
    {1, {4, 12}},  {1, {7, 9}},   {1, {5, 11}},  {1, {0, 11}},  {1, {12, 6}},  {1, {6, 10}},  {1, {12, 0}},  {1, {10, 7}},  {1, {5, 12}},  {1, {7, 10}},  {1, {9, 8}},   {1, {0, 12}},  {1, {11, 7}},
    {1, {8, 9}},   {1, {9, 9}},   {1, {10, 8}},  {1, {7, 11}},  {1, {12, 7}},  {1, {6, 11}},  {1, {8, 11}},  {1, {11, 8}},  {1, {7, 12}},  {1, {6, 12}},  {0, {8, 9}},   {0, {9, 10}},  {0, {10, 11}},
    {0, {11, 12}}, {0, {12, 13}}, {0, {13, 14}}, {0, {14, 15}}, {0, {15, 16}}, {1, {8, 10}},  {1, {10, 9}},  {1, {8, 12}},  {1, {9, 10}},  {1, {9, 11}},  {1, {9, 12}},  {1, {10, 11}}, {1, {12, 9}},
    {1, {10, 10}}, {1, {11, 9}},  {1, {12, 8}},  {1, {11, 10}}, {1, {12, 10}}, {1, {12, 11}}, {0, {2, 3}},   {0, {3, 4}},   {1, {10, 12}}, {1, {11, 11}}, {1, {11, 12}}, {1, {12, 12}}};

 const uint8_t hcb_sf[][2] = {
    {1, 2},   {60, 0},  {1, 2},   {2, 3},   {3, 4},   {59, 0},  {3, 4},   {4, 5},   {5, 6},   {61, 0},  {58, 0},  {62, 0},  {3, 4},   {4, 5},   {5, 6},   {57, 0},  {63, 0},  {4, 5},   {5, 6},
    {6, 7},   {7, 8},   {56, 0},  {64, 0},  {55, 0},  {65, 0},  {4, 5},   {5, 6},   {6, 7},   {7, 8},   {66, 0},  {54, 0},  {67, 0},  {5, 6},   {6, 7},   {7, 8},   {8, 9},   {9, 10},  {53, 0},
    {68, 0},  {52, 0},  {69, 0},  {51, 0},  {5, 6},   {6, 7},   {7, 8},   {8, 9},   {9, 10},  {70, 0},  {50, 0},  {49, 0},  {71, 0},  {6, 7},   {7, 8},   {8, 9},   {9, 10},  {10, 11}, {11, 12},
    {72, 0},  {48, 0},  {73, 0},  {47, 0},  {74, 0},  {46, 0},  {6, 7},   {7, 8},   {8, 9},   {9, 10},  {10, 11}, {11, 12}, {76, 0},  {75, 0},  {77, 0},  {78, 0},  {45, 0},  {43, 0},  {6, 7},
    {7, 8},   {8, 9},   {9, 10},  {10, 11}, {11, 12}, {44, 0},  {79, 0},  {42, 0},  {41, 0},  {80, 0},  {40, 0},  {6, 7},   {7, 8},   {8, 9},   {9, 10},  {10, 11}, {11, 12}, {81, 0},  {39, 0},
    {82, 0},  {38, 0},  {83, 0},  {7, 8},   {8, 9},   {9, 10},  {10, 11}, {11, 12}, {12, 13}, {13, 14}, {37, 0},  {35, 0},  {85, 0},  {33, 0},  {36, 0},  {34, 0},  {84, 0},  {32, 0},  {6, 7},
    {7, 8},   {8, 9},   {9, 10},  {10, 11}, {11, 12}, {87, 0},  {89, 0},  {30, 0},  {31, 0},  {8, 9},   {9, 10},  {10, 11}, {11, 12}, {12, 13}, {13, 14}, {14, 15}, {15, 16}, {86, 0},  {29, 0},
    {26, 0},  {27, 0},  {28, 0},  {24, 0},  {88, 0},  {9, 10},  {10, 11}, {11, 12}, {12, 13}, {13, 14}, {14, 15}, {15, 16}, {16, 17}, {17, 18}, {25, 0},  {22, 0},  {23, 0},  {15, 16}, {16, 17},
    {17, 18}, {18, 19}, {19, 20}, {20, 21}, {21, 22}, {22, 23}, {23, 24}, {24, 25}, {25, 26}, {26, 27}, {27, 28}, {28, 29}, {29, 30}, {90, 0},  {21, 0},  {19, 0},  {3, 0},   {1, 0},   {2, 0},
    {0, 0},   {23, 24}, {24, 25}, {25, 26}, {26, 27}, {27, 28}, {28, 29}, {29, 30}, {30, 31}, {31, 32}, {32, 33}, {33, 34}, {34, 35}, {35, 36}, {36, 37}, {37, 38}, {38, 39}, {39, 40}, {40, 41},
    {41, 42}, {42, 43}, {43, 44}, {44, 45}, {45, 46}, {98, 0},  {99, 0},  {100, 0}, {101, 0}, {102, 0}, {117, 0}, {97, 0},  {91, 0},  {92, 0},  {93, 0},  {94, 0},  {95, 0},  {96, 0},  {104, 0},
    {111, 0}, {112, 0}, {113, 0}, {114, 0}, {115, 0}, {116, 0}, {110, 0}, {105, 0}, {106, 0}, {107, 0}, {108, 0}, {109, 0}, {118, 0}, {6, 0},   {8, 0},   {9, 0},   {10, 0},  {5, 0},   {103, 0},
    {120, 0}, {119, 0}, {4, 0},   {7, 0},   {15, 0},  {16, 0},  {18, 0},  {20, 0},  {17, 0},  {11, 0},  {12, 0},  {14, 0},  {13, 0}};

 const int32_t iq_table[IQ_TABLE_SIZE] = {
    REAL_CONST(0.000000000 / 1.00000000), REAL_CONST(1.000000000 / 8.00000000), REAL_CONST(2.5198420997897464 / 8.0), REAL_CONST(4.3267487109222245 / 8.0), REAL_CONST(6.3496042078727974 / 8.0),
    REAL_CONST(8.5498797333834844 / 8.0), REAL_CONST(10.902723556992836 / 8.0), REAL_CONST(13.390518279406722 / 8.0), REAL_CONST(15.999999999999998 / 8.0), REAL_CONST(18.720754407467133 / 8.0),
    REAL_CONST(21.544346900318832 / 8.0), REAL_CONST(24.463780996262464 / 8.0), REAL_CONST(27.47314182127996 / 8.0),  REAL_CONST(30.567350940369842 / 8.0), REAL_CONST(33.741991698453212 / 8.0),
    REAL_CONST(36.993181114957046 / 8.0), REAL_CONST(40.317473596635935 / 8.0), REAL_CONST(43.711787041189993 / 8.0), REAL_CONST(47.173345095760126 / 8.0), REAL_CONST(50.699631325716943 / 8.0),
    REAL_CONST(54.288352331898118 / 8.0), REAL_CONST(57.937407704003519 / 8.0), REAL_CONST(61.6448652744185 / 8.0),   REAL_CONST(65.408940536585988 / 8.0), REAL_CONST(69.227979374755591 / 8.0),
    REAL_CONST(73.100443455321638 / 8.0), REAL_CONST(77.024897778591622 / 8.0), REAL_CONST(80.999999999999986 / 8.0), REAL_CONST(85.024491212518527 / 8.0), REAL_CONST(89.097187944889555 / 8.0),
    REAL_CONST(93.216975178615741 / 8.0), REAL_CONST(97.382800224133163 / 8.0), REAL_CONST(101.59366732596474 / 8.0), REAL_CONST(105.84863288986224 / 8.0), REAL_CONST(110.14680124343441 / 8.0),
    REAL_CONST(114.4873208566006 / 8.0),  REAL_CONST(118.86938096020653 / 8.0), REAL_CONST(123.29220851090024 / 8.0), REAL_CONST(127.75506545836058 / 8.0), REAL_CONST(132.25724627755247 / 8.0),
    REAL_CONST(136.79807573413572 / 8.0), REAL_CONST(141.37690685569191 / 8.0), REAL_CONST(145.99311908523086 / 8.0), REAL_CONST(150.6461165966291 / 8.0),  REAL_CONST(155.33532675434674 / 8.0),
    REAL_CONST(160.06019870205279 / 8.0), REAL_CONST(164.82020206673349 / 8.0), REAL_CONST(169.61482576651861 / 8.0), REAL_CONST(174.44357691188537 / 8.0), REAL_CONST(179.30597979112557 / 8.0),
    REAL_CONST(184.20157493201927 / 8.0), REAL_CONST(189.12991823257562 / 8.0), REAL_CONST(194.09058015449685 / 8.0), REAL_CONST(199.08314497371677 / 8.0), REAL_CONST(204.1072100829694 / 8.0),
    REAL_CONST(209.16238534187647 / 8.0), REAL_CONST(214.24829247050752 / 8.0), REAL_CONST(219.36456448277784 / 8.0), REAL_CONST(224.51084515641216 / 8.0), REAL_CONST(229.6867885365223 / 8.0),
    REAL_CONST(234.89205847013176 / 8.0), REAL_CONST(240.12632816923249 / 8.0), REAL_CONST(245.38927980018505 / 8.0), REAL_CONST(250.68060409747261 / 8.0), REAL_CONST(255.99999999999991 / 8.0),
    REAL_CONST(261.34717430828869 / 8.0), REAL_CONST(266.72184136106449 / 8.0), REAL_CONST(272.12372272986045 / 8.0), REAL_CONST(277.55254693037961 / 8.0), REAL_CONST(283.0080491494619 / 8.0),
    REAL_CONST(288.48997098659891 / 8.0), REAL_CONST(293.99806020902247 / 8.0), REAL_CONST(299.53207051947408 / 8.0), REAL_CONST(305.0917613358298 / 8.0),  REAL_CONST(310.67689758182206 / 8.0),
    REAL_CONST(316.28724948815585 / 8.0), REAL_CONST(321.92259240337177 / 8.0), REAL_CONST(327.58270661385535 / 8.0), REAL_CONST(333.26737717243742 / 8.0), REAL_CONST(338.97639373507025 / 8.0),
    REAL_CONST(344.70955040510125 / 8.0), REAL_CONST(350.46664558470013 / 8.0), REAL_CONST(356.24748183302603 / 8.0), REAL_CONST(362.05186573075139 / 8.0), REAL_CONST(367.87960775058258 / 8.0),
    REAL_CONST(373.73052213344511 / 8.0), REAL_CONST(379.60442677002078 / 8.0), REAL_CONST(385.50114308734607 / 8.0), REAL_CONST(391.42049594019937 / 8.0), REAL_CONST(397.36231350702371 / 8.0),
    REAL_CONST(403.32642719014467 / 8.0), REAL_CONST(409.31267152006262 / 8.0), REAL_CONST(415.32088406360799 / 8.0), REAL_CONST(421.35090533576471 / 8.0), REAL_CONST(427.40257871497619 / 8.0),
    REAL_CONST(433.4757503617617 / 8.0),  REAL_CONST(439.5702691404793 / 8.0),  REAL_CONST(445.68598654408271 / 8.0), REAL_CONST(451.82275662172759 / 8.0), REAL_CONST(457.98043590909128 / 8.0),
    REAL_CONST(464.15888336127773 / 8.0), REAL_CONST(470.35796028818726 / 8.0), REAL_CONST(476.5775302922363 / 8.0),  REAL_CONST(482.81745920832043 / 8.0), REAL_CONST(489.07761504591741 / 8.0),
    REAL_CONST(495.35786793323581 / 8.0), REAL_CONST(501.65809006331688 / 8.0), REAL_CONST(507.97815564200368 / 8.0), REAL_CONST(514.31794083769648 / 8.0), REAL_CONST(520.67732373281672 / 8.0),
    REAL_CONST(527.05618427690604 / 8.0), REAL_CONST(533.45440424129174 / 8.0), REAL_CONST(539.87186717525128 / 8.0), REAL_CONST(546.30845836361505 / 8.0), REAL_CONST(552.76406478574609 / 8.0),
    REAL_CONST(559.23857507584194 / 8.0), REAL_CONST(565.73187948450413 / 8.0), REAL_CONST(572.24386984152341 / 8.0), REAL_CONST(578.77443951983378 / 8.0), REAL_CONST(585.32348340058843 / 8.0),
    REAL_CONST(591.89089783931263 / 8.0), REAL_CONST(598.47658063309257 / 8.0), REAL_CONST(605.08043098876044 / 8.0), REAL_CONST(611.70234949203643 / 8.0), REAL_CONST(618.3422380775919 / 8.0),
    REAL_CONST(624.99999999999977 / 8.0), REAL_CONST(631.67553980553748 / 8.0), REAL_CONST(638.36876330481164 / 8.0), REAL_CONST(645.07957754617485 / 8.0), REAL_CONST(651.80789078990415 / 8.0),
    REAL_CONST(658.55361248311499 / 8.0), REAL_CONST(665.31665323538357 / 8.0), REAL_CONST(672.09692479505225 / 8.0), REAL_CONST(678.8943400261943 / 8.0),  REAL_CONST(685.70881288621433 / 8.0),
    REAL_CONST(692.540258404062 / 8.0),   REAL_CONST(699.38859265903977 / 8.0), REAL_CONST(706.25373276018058 / 8.0), REAL_CONST(713.13559682617972 / 8.0), REAL_CONST(720.03410396586037 / 8.0),
    REAL_CONST(726.94917425915435 / 8.0), REAL_CONST(733.88072873858209 / 8.0), REAL_CONST(740.82868937121543 / 8.0), REAL_CONST(747.79297904110535 / 8.0), REAL_CONST(754.77352153216191 / 8.0),
    REAL_CONST(761.77024151147043 / 8.0), REAL_CONST(768.78306451302956 / 8.0), REAL_CONST(775.81191692189896 / 8.0), REAL_CONST(782.85672595874246 / 8.0), REAL_CONST(789.91741966475445 / 8.0),
    REAL_CONST(796.99392688695798 / 8.0), REAL_CONST(804.08617726386274 / 8.0), REAL_CONST(811.19410121147098 / 8.0), REAL_CONST(818.31762990962227 / 8.0), REAL_CONST(825.45669528866563 / 8.0),
    REAL_CONST(832.61123001644864 / 8.0), REAL_CONST(839.78116748561604 / 8.0), REAL_CONST(846.96644180120552 / 8.0), REAL_CONST(854.16698776853514 / 8.0), REAL_CONST(861.38274088137143 / 8.0),
    REAL_CONST(868.61363731036977 / 8.0), REAL_CONST(875.85961389178203 / 8.0), REAL_CONST(883.12060811641959 / 8.0), REAL_CONST(890.39655811886757 / 8.0), REAL_CONST(897.68740266694181 / 8.0),
    REAL_CONST(904.99308115138172 / 8.0), REAL_CONST(912.31353357577188 / 8.0), REAL_CONST(919.64870054668756 / 8.0), REAL_CONST(926.99852326405619 / 8.0), REAL_CONST(934.36294351172899 / 8.0),
    REAL_CONST(941.74190364825859 / 8.0), REAL_CONST(949.13534659787422 / 8.0), REAL_CONST(956.54321584165211 / 8.0), REAL_CONST(963.96545540887348 / 8.0), REAL_CONST(971.40200986856541 / 8.0),
    REAL_CONST(978.85282432122176 / 8.0), REAL_CONST(986.31784439069588 / 8.0), REAL_CONST(993.7970162162635 / 8.0),  REAL_CONST(1001.29028644485 / 8.0),   REAL_CONST(1008.797602223418 / 8.0),
    REAL_CONST(1016.3189111915103 / 8.0), REAL_CONST(1023.8541614739464 / 8.0), REAL_CONST(1031.4033016736653 / 8.0), REAL_CONST(1038.9662808647138 / 8.0), REAL_CONST(1046.5430485853758 / 8.0),
    REAL_CONST(1054.1335548314366 / 8.0), REAL_CONST(1061.7377500495838 / 8.0), REAL_CONST(1069.3555851309357 / 8.0), REAL_CONST(1076.9870114046978 / 8.0), REAL_CONST(1084.6319806319441 / 8.0),
    REAL_CONST(1092.2904449995174 / 8.0), REAL_CONST(1099.9623571140482 / 8.0), REAL_CONST(1107.6476699960892 / 8.0), REAL_CONST(1115.3463370743607 / 8.0), REAL_CONST(1123.058312180106 / 8.0),
    REAL_CONST(1130.7835495415541 / 8.0), REAL_CONST(1138.5220037784854 / 8.0), REAL_CONST(1146.273629896901 / 8.0),  REAL_CONST(1154.0383832837879 / 8.0), REAL_CONST(1161.816219701986 / 8.0),
    REAL_CONST(1169.607095285146 / 8.0),  REAL_CONST(1177.4109665327808 / 8.0), REAL_CONST(1185.2277903054078 / 8.0), REAL_CONST(1193.0575238197798 / 8.0), REAL_CONST(1200.9001246442001 / 8.0),
    REAL_CONST(1208.7555506939248 / 8.0), REAL_CONST(1216.6237602266442 / 8.0), REAL_CONST(1224.5047118380478 / 8.0), REAL_CONST(1232.3983644574657 / 8.0), REAL_CONST(1240.3046773435874 / 8.0),
    REAL_CONST(1248.2236100802568 / 8.0), REAL_CONST(1256.1551225723395 / 8.0), REAL_CONST(1264.099175041662 / 8.0),  REAL_CONST(1272.0557280230228 / 8.0), REAL_CONST(1280.0247423602691 / 8.0),
    REAL_CONST(1288.0061792024444 / 8.0), REAL_CONST(1295.9999999999995 / 8.0), REAL_CONST(1304.006166501068 / 8.0),  REAL_CONST(1312.0246407478062 / 8.0), REAL_CONST(1320.0553850727929 / 8.0),
    REAL_CONST(1328.0983620954903 / 8.0), REAL_CONST(1336.1535347187651 / 8.0), REAL_CONST(1344.2208661254647 / 8.0), REAL_CONST(1352.3003197750522 / 8.0), REAL_CONST(1360.3918594002962 / 8.0),
    REAL_CONST(1368.4954490040145 / 8.0), REAL_CONST(1376.6110528558709 / 8.0), REAL_CONST(1384.7386354892244 / 8.0), REAL_CONST(1392.8781616980295 / 8.0), REAL_CONST(1401.0295965337855 / 8.0),
    REAL_CONST(1409.1929053025353 / 8.0), REAL_CONST(1417.3680535619119 / 8.0), REAL_CONST(1425.5550071182327 / 8.0), REAL_CONST(1433.7537320236374 / 8.0), REAL_CONST(1441.9641945732744 / 8.0),
    REAL_CONST(1450.1863613025282 / 8.0), REAL_CONST(1458.4201989842913 / 8.0), REAL_CONST(1466.6656746262797 / 8.0), REAL_CONST(1474.9227554683875 / 8.0), REAL_CONST(1483.1914089800841 / 8.0),
    REAL_CONST(1491.4716028578516 / 8.0), REAL_CONST(1499.7633050226596 / 8.0), REAL_CONST(1508.0664836174794 / 8.0), REAL_CONST(1516.3811070048375 / 8.0), REAL_CONST(1524.7071437644029 / 8.0),
    REAL_CONST(1533.0445626906128 / 8.0), REAL_CONST(1541.3933327903342 / 8.0), REAL_CONST(1549.7534232805581 / 8.0), REAL_CONST(1558.1248035861302 / 8.0), REAL_CONST(1566.507443337515 / 8.0),
    REAL_CONST(1574.9013123685909 / 8.0), REAL_CONST(1583.3063807144795 / 8.0), REAL_CONST(1591.7226186094069 / 8.0), REAL_CONST(1600.1499964845941 / 8.0), REAL_CONST(1608.58848496618 / 8.0),
    REAL_CONST(1617.0380548731737 / 8.0), REAL_CONST(1625.4986772154357 / 8.0), REAL_CONST(1633.9703231916887 / 8.0), REAL_CONST(1642.4529641875577 / 8.0), REAL_CONST(1650.9465717736346 / 8.0),
    REAL_CONST(1659.4511177035752 / 8.0), REAL_CONST(1667.9665739122186 / 8.0), REAL_CONST(1676.4929125137353 / 8.0), REAL_CONST(1685.030105799801 / 8.0),  REAL_CONST(1693.5781262377957 / 8.0),
    REAL_CONST(1702.136946469027 / 8.0),  REAL_CONST(1710.7065393069795 / 8.0), REAL_CONST(1719.2868777355877 / 8.0), REAL_CONST(1727.8779349075323 / 8.0), REAL_CONST(1736.4796841425596 / 8.0),
    REAL_CONST(1745.092098925825 / 8.0),  REAL_CONST(1753.7151529062583 / 8.0), REAL_CONST(1762.3488198949503 / 8.0), REAL_CONST(1770.9930738635628 / 8.0), REAL_CONST(1779.6478889427597 / 8.0),
    REAL_CONST(1788.3132394206564 / 8.0), REAL_CONST(1796.9890997412947 / 8.0), REAL_CONST(1805.6754445031333 / 8.0), REAL_CONST(1814.3722484575621 / 8.0), REAL_CONST(1823.0794865074322 / 8.0),
    REAL_CONST(1831.7971337056094 / 8.0), REAL_CONST(1840.5251652535437 / 8.0), REAL_CONST(1849.2635564998579 / 8.0), REAL_CONST(1858.0122829389563 / 8.0), REAL_CONST(1866.7713202096493 / 8.0),
    REAL_CONST(1875.5406440937966 / 8.0), REAL_CONST(1884.3202305149687 / 8.0), REAL_CONST(1893.110055537124 / 8.0),  REAL_CONST(1901.9100953633042 / 8.0), REAL_CONST(1910.7203263343454 / 8.0),
    REAL_CONST(1919.5407249276057 / 8.0), REAL_CONST(1928.3712677557098 / 8.0), REAL_CONST(1937.2119315653083 / 8.0), REAL_CONST(1946.0626932358525 / 8.0), REAL_CONST(1954.923529778386 / 8.0),
    REAL_CONST(1963.79441833435 / 8.0),   REAL_CONST(1972.6753361744036 / 8.0), REAL_CONST(1981.5662606972594 / 8.0), REAL_CONST(1990.467169428533 / 8.0),  REAL_CONST(1999.3780400196069 / 8.0),
    REAL_CONST(2008.2988502465078 / 8.0), REAL_CONST(2017.2295780087982 / 8.0), REAL_CONST(2026.1702013284819 / 8.0), REAL_CONST(2035.1206983489212 / 8.0), REAL_CONST(2044.0810473337688 / 8.0),
    REAL_CONST(2053.0512266659125 / 8.0), REAL_CONST(2062.0312148464309 / 8.0), REAL_CONST(2071.0209904935646 / 8.0), REAL_CONST(2080.0205323416958 / 8.0), REAL_CONST(2089.0298192403443 / 8.0),
    REAL_CONST(2098.0488301531714 / 8.0), REAL_CONST(2107.0775441569995 / 8.0), REAL_CONST(2116.115940440839 / 8.0),  REAL_CONST(2125.1639983049317 / 8.0), REAL_CONST(2134.2216971597995 / 8.0),
    REAL_CONST(2143.2890165253098 / 8.0), REAL_CONST(2152.3659360297484 / 8.0), REAL_CONST(2161.4524354089031 / 8.0), REAL_CONST(2170.5484945051617 / 8.0), REAL_CONST(2179.6540932666144 / 8.0),
    REAL_CONST(2188.7692117461711 / 8.0), REAL_CONST(2197.8938301006888 / 8.0), REAL_CONST(2207.0279285901042 / 8.0), REAL_CONST(2216.1714875765838 / 8.0), REAL_CONST(2225.324487523676 / 8.0),
    REAL_CONST(2234.4869089954782 / 8.0), REAL_CONST(2243.6587326558101 / 8.0), REAL_CONST(2252.8399392673982 / 8.0), REAL_CONST(2262.0305096910702 / 8.0), REAL_CONST(2271.2304248849537 / 8.0),
    REAL_CONST(2280.4396659036897 / 8.0), REAL_CONST(2289.6582138976523 / 8.0), REAL_CONST(2298.8860501121762 / 8.0), REAL_CONST(2308.1231558867926 / 8.0), REAL_CONST(2317.3695126544767 / 8.0),
    REAL_CONST(2326.6251019409005 / 8.0), REAL_CONST(2335.8899053636933 / 8.0), REAL_CONST(2345.1639046317132 / 8.0), REAL_CONST(2354.4470815443233 / 8.0), REAL_CONST(2363.7394179906792 / 8.0),
    REAL_CONST(2373.0408959490205 / 8.0), REAL_CONST(2382.3514974859731 / 8.0), REAL_CONST(2391.6712047558558 / 8.0), REAL_CONST(2400.9999999999991 / 8.0), REAL_CONST(2410.3378655460651 / 8.0),
    REAL_CONST(2419.6847838073813 / 8.0), REAL_CONST(2429.0407372822747 / 8.0), REAL_CONST(2438.4057085534191 / 8.0), REAL_CONST(2447.7796802871858 / 8.0), REAL_CONST(2457.1626352330004 / 8.0),
    REAL_CONST(2466.5545562227112 / 8.0), REAL_CONST(2475.9554261699564 / 8.0), REAL_CONST(2485.3652280695474 / 8.0), REAL_CONST(2494.7839449968492 / 8.0), REAL_CONST(2504.2115601071737 / 8.0),
    REAL_CONST(2513.6480566351788 / 8.0), REAL_CONST(2523.0934178942675 / 8.0), REAL_CONST(2532.5476272760025 / 8.0), REAL_CONST(2542.0106682495189 / 8.0), REAL_CONST(2551.482524360948 / 8.0),
    REAL_CONST(2560.9631792328441 / 8.0), REAL_CONST(2570.4526165636184 / 8.0), REAL_CONST(2579.9508201269791 / 8.0), REAL_CONST(2589.4577737713744 / 8.0), REAL_CONST(2598.9734614194458 / 8.0),
    REAL_CONST(2608.4978670674823 / 8.0), REAL_CONST(2618.0309747848837 / 8.0), REAL_CONST(2627.5727687136259 / 8.0), REAL_CONST(2637.1232330677353 / 8.0), REAL_CONST(2646.6823521327647 / 8.0),
    REAL_CONST(2656.2501102652768 / 8.0), REAL_CONST(2665.8264918923328 / 8.0), REAL_CONST(2675.4114815109842 / 8.0), REAL_CONST(2685.0050636877722 / 8.0), REAL_CONST(2694.6072230582295 / 8.0),
    REAL_CONST(2704.2179443263894 / 8.0), REAL_CONST(2713.8372122642972 / 8.0), REAL_CONST(2723.4650117115279 / 8.0), REAL_CONST(2733.1013275747096 / 8.0), REAL_CONST(2742.7461448270483 / 8.0),
    REAL_CONST(2752.3994485078601 / 8.0), REAL_CONST(2762.0612237221085 / 8.0), REAL_CONST(2771.7314556399419 / 8.0), REAL_CONST(2781.4101294962406 / 8.0), REAL_CONST(2791.0972305901655 / 8.0),
    REAL_CONST(2800.7927442847094 / 8.0), REAL_CONST(2810.4966560062589 / 8.0), REAL_CONST(2820.2089512441521 / 8.0), REAL_CONST(2829.9296155502466 / 8.0), REAL_CONST(2839.6586345384894 / 8.0),
    REAL_CONST(2849.3959938844923 / 8.0), REAL_CONST(2859.1416793251065 / 8.0), REAL_CONST(2868.8956766580086 / 8.0), REAL_CONST(2878.6579717412847 / 8.0), REAL_CONST(2888.4285504930212 / 8.0),
    REAL_CONST(2898.2073988908974 / 8.0), REAL_CONST(2907.9945029717837 / 8.0), REAL_CONST(2917.789848831344 / 8.0),  REAL_CONST(2927.5934226236377 / 8.0), REAL_CONST(2937.4052105607311 / 8.0),
    REAL_CONST(2947.2251989123079 / 8.0), REAL_CONST(2957.0533740052865 / 8.0), REAL_CONST(2966.8897222234368 / 8.0), REAL_CONST(2976.734230007005 / 8.0),  REAL_CONST(2986.5868838523397 / 8.0),
    REAL_CONST(2996.4476703115197 / 8.0), REAL_CONST(3006.3165759919889 / 8.0), REAL_CONST(3016.1935875561908 / 8.0), REAL_CONST(3026.0786917212095 / 8.0), REAL_CONST(3035.9718752584108 / 8.0),
    REAL_CONST(3045.8731249930906 / 8.0), REAL_CONST(3055.7824278041207 / 8.0), REAL_CONST(3065.6997706236039 / 8.0), REAL_CONST(3075.625140436528 / 8.0),  REAL_CONST(3085.5585242804245 / 8.0),
    REAL_CONST(3095.4999092450298 / 8.0), REAL_CONST(3105.4492824719491 / 8.0), REAL_CONST(3115.4066311543256 / 8.0), REAL_CONST(3125.3719425365089 / 8.0), REAL_CONST(3135.3452039137287 / 8.0),
    REAL_CONST(3145.3264026317715 / 8.0), REAL_CONST(3155.3155260866592 / 8.0), REAL_CONST(3165.3125617243295 / 8.0), REAL_CONST(3175.3174970403229 / 8.0), REAL_CONST(3185.3303195794679 / 8.0),
    REAL_CONST(3195.35101693557 / 8.0),   REAL_CONST(3205.3795767511078 / 8.0), REAL_CONST(3215.4159867169251 / 8.0), REAL_CONST(3225.460234571929 / 8.0),  REAL_CONST(3235.5123081027928 / 8.0),
    REAL_CONST(3245.5721951436558 / 8.0), REAL_CONST(3255.63988357583 / 8.0),   REAL_CONST(3265.7153613275095 / 8.0), REAL_CONST(3275.7986163734795 / 8.0), REAL_CONST(3285.8896367348289 / 8.0),
    REAL_CONST(3295.9884104786665 / 8.0), REAL_CONST(3306.0949257178395 / 8.0), REAL_CONST(3316.2091706106517 / 8.0), REAL_CONST(3326.331133360588 / 8.0),  REAL_CONST(3336.4608022160378 / 8.0),
    REAL_CONST(3346.5981654700231 / 8.0), REAL_CONST(3356.7432114599264 / 8.0), REAL_CONST(3366.8959285672249 / 8.0), REAL_CONST(3377.0563052172211 / 8.0), REAL_CONST(3387.2243298787821 / 8.0),
    REAL_CONST(3397.3999910640764 / 8.0), REAL_CONST(3407.5832773283128 / 8.0), REAL_CONST(3417.7741772694862 / 8.0), REAL_CONST(3427.9726795281199 / 8.0), REAL_CONST(3438.1787727870123 / 8.0),
    REAL_CONST(3448.3924457709873 / 8.0), REAL_CONST(3458.6136872466445 / 8.0), REAL_CONST(3468.8424860221107 / 8.0), REAL_CONST(3479.0788309467976 / 8.0), REAL_CONST(3489.3227109111554 / 8.0),
    REAL_CONST(3499.5741148464344 / 8.0), REAL_CONST(3509.8330317244445 / 8.0), REAL_CONST(3520.0994505573185 / 8.0), REAL_CONST(3530.3733603972751 / 8.0), REAL_CONST(3540.6547503363886 / 8.0),
    REAL_CONST(3550.9436095063534 / 8.0), REAL_CONST(3561.239927078258 / 8.0),  REAL_CONST(3571.5436922623535 / 8.0), REAL_CONST(3581.8548943078308 / 8.0), REAL_CONST(3592.1735225025936 / 8.0),
    REAL_CONST(3602.4995661730372 / 8.0), REAL_CONST(3612.8330146838275 / 8.0), REAL_CONST(3623.1738574376814 / 8.0), REAL_CONST(3633.5220838751502 / 8.0), REAL_CONST(3643.8776834744031 / 8.0),
    REAL_CONST(3654.2406457510142 / 8.0), REAL_CONST(3664.6109602577494 / 8.0), REAL_CONST(3674.9886165843564 / 8.0), REAL_CONST(3685.3736043573545 / 8.0), REAL_CONST(3695.7659132398294 / 8.0),
    REAL_CONST(3706.1655329312248 / 8.0), REAL_CONST(3716.5724531671399 / 8.0), REAL_CONST(3726.9866637191262 / 8.0), REAL_CONST(3737.4081543944876 / 8.0), REAL_CONST(3747.8369150360782 / 8.0),
    REAL_CONST(3758.2729355221072 / 8.0), REAL_CONST(3768.7162057659411 / 8.0), REAL_CONST(3779.1667157159077 / 8.0), REAL_CONST(3789.6244553551055 / 8.0), REAL_CONST(3800.0894147012082 / 8.0),
    REAL_CONST(3810.5615838062768 / 8.0), REAL_CONST(3821.0409527565694 / 8.0), REAL_CONST(3831.5275116723533 / 8.0), REAL_CONST(3842.0212507077194 / 8.0), REAL_CONST(3852.522160050396 / 8.0),
    REAL_CONST(3863.0302299215673 / 8.0), REAL_CONST(3873.5454505756893 / 8.0), REAL_CONST(3884.0678123003108 / 8.0), REAL_CONST(3894.5973054158922 / 8.0), REAL_CONST(3905.1339202756285 / 8.0),
    REAL_CONST(3915.6776472652732 / 8.0), REAL_CONST(3926.2284768029604 / 8.0), REAL_CONST(3936.7863993390338 / 8.0), REAL_CONST(3947.3514053558706 / 8.0), REAL_CONST(3957.9234853677135 / 8.0),
    REAL_CONST(3968.5026299204969 / 8.0), REAL_CONST(3979.0888295916798 / 8.0), REAL_CONST(3989.6820749900776 / 8.0), REAL_CONST(4000.2823567556948 / 8.0), REAL_CONST(4010.8896655595613 / 8.0),
    REAL_CONST(4021.5039921035655 / 8.0), REAL_CONST(4032.1253271202945 / 8.0), REAL_CONST(4042.7536613728694 / 8.0), REAL_CONST(4053.3889856547858 / 8.0), REAL_CONST(4064.0312907897551 / 8.0),
    REAL_CONST(4074.6805676315448 / 8.0), REAL_CONST(4085.3368070638221 / 8.0), REAL_CONST(4095.9999999999982 / 8.0), REAL_CONST(4106.6701373830711 / 8.0), REAL_CONST(4117.347210185475 / 8.0),
    REAL_CONST(4128.0312094089259 / 8.0), REAL_CONST(4138.722126084268 / 8.0),  REAL_CONST(4149.4199512713267 / 8.0), REAL_CONST(4160.1246760587583 / 8.0), REAL_CONST(4170.8362915638982 / 8.0),
    REAL_CONST(4181.5547889326181 / 8.0), REAL_CONST(4192.2801593391769 / 8.0), REAL_CONST(4203.0123939860741 / 8.0), REAL_CONST(4213.7514841039101 / 8.0), REAL_CONST(4224.4974209512384 / 8.0),
    REAL_CONST(4235.2501958144258 / 8.0), REAL_CONST(4246.0098000075095 / 8.0), REAL_CONST(4256.7762248720574 / 8.0), REAL_CONST(4267.549461777031 / 8.0),  REAL_CONST(4278.3295021186423 / 8.0),
    REAL_CONST(4289.1163373202198 / 8.0), REAL_CONST(4299.9099588320714 / 8.0), REAL_CONST(4310.7103581313495 / 8.0), REAL_CONST(4321.5175267219138 / 8.0), REAL_CONST(4332.3314561342004 / 8.0),
    REAL_CONST(4343.152137925088 / 8.0),  REAL_CONST(4353.9795636777671 / 8.0), REAL_CONST(4364.8137250016052 / 8.0), REAL_CONST(4375.6546135320223 / 8.0), REAL_CONST(4386.5022209303588 / 8.0),
    REAL_CONST(4397.3565388837469 / 8.0), REAL_CONST(4408.2175591049827 / 8.0), REAL_CONST(4419.0852733324018 / 8.0), REAL_CONST(4429.9596733297531 / 8.0), REAL_CONST(4440.8407508860728 / 8.0),
    REAL_CONST(4451.7284978155603 / 8.0), REAL_CONST(4462.6229059574571 / 8.0), REAL_CONST(4473.5239671759227 / 8.0), REAL_CONST(4484.4316733599126 / 8.0), REAL_CONST(4495.3460164230582 / 8.0),
    REAL_CONST(4506.2669883035496 / 8.0), REAL_CONST(4517.1945809640119 / 8.0), REAL_CONST(4528.1287863913894 / 8.0), REAL_CONST(4539.069596596828 / 8.0),  REAL_CONST(4550.0170036155587 / 8.0),
    REAL_CONST(4560.9709995067806 / 8.0), REAL_CONST(4571.931576353546 / 8.0),  REAL_CONST(4582.898726262647 / 8.0),  REAL_CONST(4593.8724413645004 / 8.0), REAL_CONST(4604.8527138130348 / 8.0),
    REAL_CONST(4615.8395357855816 / 8.0), REAL_CONST(4626.8328994827571 / 8.0), REAL_CONST(4637.8327971283588 / 8.0), REAL_CONST(4648.8392209692511 / 8.0), REAL_CONST(4659.8521632752563 / 8.0),
    REAL_CONST(4670.8716163390473 / 8.0), REAL_CONST(4681.8975724760394 / 8.0), REAL_CONST(4692.9300240242837 / 8.0), REAL_CONST(4703.9689633443595 / 8.0), REAL_CONST(4715.0143828192668 / 8.0),
    REAL_CONST(4726.0662748543255 / 8.0), REAL_CONST(4737.1246318770682 / 8.0), REAL_CONST(4748.1894463371373 / 8.0), REAL_CONST(4759.2607107061804 / 8.0), REAL_CONST(4770.3384174777493 / 8.0),
    REAL_CONST(4781.4225591671993 / 8.0), REAL_CONST(4792.5131283115852 / 8.0), REAL_CONST(4803.6101174695614 / 8.0), REAL_CONST(4814.7135192212854 / 8.0), REAL_CONST(4825.8233261683154 / 8.0),
    REAL_CONST(4836.9395309335096 / 8.0), REAL_CONST(4848.0621261609349 / 8.0), REAL_CONST(4859.1911045157631 / 8.0), REAL_CONST(4870.3264586841779 / 8.0), REAL_CONST(4881.4681813732768 / 8.0),
    REAL_CONST(4892.6162653109768 / 8.0), REAL_CONST(4903.7707032459193 / 8.0), REAL_CONST(4914.931487947375 / 8.0),  REAL_CONST(4926.0986122051509 / 8.0), REAL_CONST(4937.2720688294967 / 8.0),
    REAL_CONST(4948.4518506510112 / 8.0), REAL_CONST(4959.637950520555 / 8.0),  REAL_CONST(4970.8303613091521 / 8.0), REAL_CONST(4982.0290759079044 / 8.0), REAL_CONST(4993.2340872278974 / 8.0),
    REAL_CONST(5004.4453882001153 / 8.0), REAL_CONST(5015.6629717753467 / 8.0), REAL_CONST(5026.8868309241007 / 8.0), REAL_CONST(5038.1169586365131 / 8.0), REAL_CONST(5049.353347922266 / 8.0),
    REAL_CONST(5060.5959918104927 / 8.0), REAL_CONST(5071.8448833496996 / 8.0), REAL_CONST(5083.1000156076734 / 8.0), REAL_CONST(5094.3613816713996 / 8.0), REAL_CONST(5105.6289746469747 / 8.0),
    REAL_CONST(5116.9027876595246 / 8.0), REAL_CONST(5128.18281385312 / 8.0),   REAL_CONST(5139.4690463906918 / 8.0), REAL_CONST(5150.7614784539473 / 8.0), REAL_CONST(5162.0601032432933 / 8.0),
    REAL_CONST(5173.3649139777472 / 8.0), REAL_CONST(5184.6759038948594 / 8.0), REAL_CONST(5195.9930662506322 / 8.0), REAL_CONST(5207.3163943194386 / 8.0), REAL_CONST(5218.6458813939435 / 8.0),
    REAL_CONST(5229.9815207850224 / 8.0), REAL_CONST(5241.3233058216847 / 8.0), REAL_CONST(5252.6712298509919 / 8.0), REAL_CONST(5264.025286237983 / 8.0),  REAL_CONST(5275.3854683655954 / 8.0),
    REAL_CONST(5286.7517696345885 / 8.0), REAL_CONST(5298.1241834634639 / 8.0), REAL_CONST(5309.5027032883945 / 8.0), REAL_CONST(5320.887322563146 / 8.0),  REAL_CONST(5332.2780347589978 / 8.0),
    REAL_CONST(5343.6748333646756 / 8.0), REAL_CONST(5355.0777118862716 / 8.0), REAL_CONST(5366.4866638471722 / 8.0), REAL_CONST(5377.901682787985 / 8.0),  REAL_CONST(5389.3227622664635 / 8.0),
    REAL_CONST(5400.749895857437 / 8.0),  REAL_CONST(5412.1830771527357 / 8.0), REAL_CONST(5423.622299761123 / 8.0),  REAL_CONST(5435.067557308219 / 8.0),  REAL_CONST(5446.5188434364318 / 8.0),
    REAL_CONST(5457.9761518048872 / 8.0), REAL_CONST(5469.4394760893592 / 8.0), REAL_CONST(5480.9088099821975 / 8.0), REAL_CONST(5492.3841471922606 / 8.0), REAL_CONST(5503.8654814448455 / 8.0),
    REAL_CONST(5515.3528064816201 / 8.0), REAL_CONST(5526.846116060552 / 8.0),  REAL_CONST(5538.3454039558474 / 8.0), REAL_CONST(5549.8506639578736 / 8.0), REAL_CONST(5561.3618898731029 / 8.0),
    REAL_CONST(5572.8790755240361 / 8.0), REAL_CONST(5584.4022147491451 / 8.0), REAL_CONST(5595.9313014027975 / 8.0), REAL_CONST(5607.4663293552012 / 8.0), REAL_CONST(5619.0072924923297 / 8.0),
    REAL_CONST(5630.5541847158656 / 8.0), REAL_CONST(5642.1069999431284 / 8.0), REAL_CONST(5653.665732107017 / 8.0),  REAL_CONST(5665.230375155943 / 8.0),  REAL_CONST(5676.8009230537655 / 8.0),
    REAL_CONST(5688.3773697797333 / 8.0), REAL_CONST(5699.9597093284156 / 8.0), REAL_CONST(5711.5479357096474 / 8.0), REAL_CONST(5723.1420429484588 / 8.0), REAL_CONST(5734.7420250850209 / 8.0),
    REAL_CONST(5746.347876174581 / 8.0),  REAL_CONST(5757.9595902874016 / 8.0), REAL_CONST(5769.5771615087006 / 8.0), REAL_CONST(5781.2005839385911 / 8.0), REAL_CONST(5792.8298516920213 / 8.0),
    REAL_CONST(5804.4649588987149 / 8.0), REAL_CONST(5816.1058997031105 / 8.0), REAL_CONST(5827.7526682643065 / 8.0), REAL_CONST(5839.4052587559972 / 8.0), REAL_CONST(5851.0636653664196 / 8.0),
    REAL_CONST(5862.7278822982908 / 8.0), REAL_CONST(5874.3979037687541 / 8.0), REAL_CONST(5886.0737240093204 / 8.0), REAL_CONST(5897.7553372658094 / 8.0), REAL_CONST(5909.4427377982956 / 8.0),
    REAL_CONST(5921.1359198810505 / 8.0), REAL_CONST(5932.8348778024874 / 8.0), REAL_CONST(5944.5396058651031 / 8.0), REAL_CONST(5956.2500983854261 / 8.0), REAL_CONST(5967.9663496939575 / 8.0),
    REAL_CONST(5979.6883541351208 / 8.0), REAL_CONST(5991.4161060672022 / 8.0), REAL_CONST(6003.1495998623004 / 8.0), REAL_CONST(6014.8888299062692 / 8.0), REAL_CONST(6026.6337905986684 / 8.0),
    REAL_CONST(6038.3844763527022 / 8.0), REAL_CONST(6050.1408815951781 / 8.0), REAL_CONST(6061.9030007664414 / 8.0), REAL_CONST(6073.6708283203316 / 8.0), REAL_CONST(6085.4443587241267 / 8.0),
    REAL_CONST(6097.2235864584891 / 8.0), REAL_CONST(6109.0085060174197 / 8.0), REAL_CONST(6120.7991119081998 / 8.0), REAL_CONST(6132.595398651345 / 8.0),  REAL_CONST(6144.3973607805519 / 8.0),
    REAL_CONST(6156.2049928426459 / 8.0), REAL_CONST(6168.0182893975361 / 8.0), REAL_CONST(6179.8372450181578 / 8.0), REAL_CONST(6191.6618542904307 / 8.0), REAL_CONST(6203.4921118132024 / 8.0),
    REAL_CONST(6215.3280121982016 / 8.0), REAL_CONST(6227.1695500699925 / 8.0), REAL_CONST(6239.0167200659189 / 8.0), REAL_CONST(6250.8695168360628 / 8.0), REAL_CONST(6262.7279350431891 / 8.0),
    REAL_CONST(6274.5919693627056 / 8.0), REAL_CONST(6286.4616144826068 / 8.0), REAL_CONST(6298.3368651034316 / 8.0), REAL_CONST(6310.2177159382172 / 8.0), REAL_CONST(6322.1041617124456 / 8.0),
    REAL_CONST(6333.9961971640032 / 8.0), REAL_CONST(6345.8938170431311 / 8.0), REAL_CONST(6357.7970161123785 / 8.0), REAL_CONST(6369.7057891465583 / 8.0), REAL_CONST(6381.6201309327007 / 8.0),
    REAL_CONST(6393.5400362700075 / 8.0), REAL_CONST(6405.4654999698032 / 8.0), REAL_CONST(6417.3965168554978 / 8.0), REAL_CONST(6429.3330817625329 / 8.0), REAL_CONST(6441.2751895383453 / 8.0),
    REAL_CONST(6453.2228350423138 / 8.0), REAL_CONST(6465.176013145724 / 8.0),  REAL_CONST(6477.134718731716 / 8.0),  REAL_CONST(6489.0989466952469 / 8.0), REAL_CONST(6501.0686919430445 / 8.0),
    REAL_CONST(6513.0439493935628 / 8.0), REAL_CONST(6525.0247139769417 / 8.0), REAL_CONST(6537.010980634961 / 8.0),  REAL_CONST(6549.002744321001 / 8.0),  REAL_CONST(6560.9999999999973 / 8.0),
    REAL_CONST(6573.0027426483985 / 8.0), REAL_CONST(6585.0109672541284 / 8.0), REAL_CONST(6597.0246688165371 / 8.0), REAL_CONST(6609.0438423463656 / 8.0), REAL_CONST(6621.0684828657004 / 8.0),
    REAL_CONST(6633.0985854079354 / 8.0), REAL_CONST(6645.134145017727 / 8.0),  REAL_CONST(6657.1751567509573 / 8.0), REAL_CONST(6669.2216156746908 / 8.0), REAL_CONST(6681.2735168671343 / 8.0),
    REAL_CONST(6693.3308554176001 / 8.0), REAL_CONST(6705.3936264264594 / 8.0), REAL_CONST(6717.461825005108 / 8.0),  REAL_CONST(6729.535446275926 / 8.0),  REAL_CONST(6741.6144853722335 / 8.0),
    REAL_CONST(6753.6989374382601 / 8.0), REAL_CONST(6765.7887976290967 / 8.0), REAL_CONST(6777.8840611106634 / 8.0), REAL_CONST(6789.9847230596661 / 8.0), REAL_CONST(6802.0907786635626 / 8.0),
    REAL_CONST(6814.2022231205201 / 8.0), REAL_CONST(6826.3190516393797 / 8.0), REAL_CONST(6838.4412594396181 / 8.0), REAL_CONST(6850.5688417513074 / 8.0), REAL_CONST(6862.701793815083 / 8.0),
    REAL_CONST(6874.840110882099 / 8.0),  REAL_CONST(6886.9837882139991 / 8.0), REAL_CONST(6899.1328210828724 / 8.0), REAL_CONST(6911.2872047712199 / 8.0), REAL_CONST(6923.4469345719199 / 8.0),
    REAL_CONST(6935.6120057881863 / 8.0), REAL_CONST(6947.7824137335365 / 8.0), REAL_CONST(6959.9581537317536 / 8.0), REAL_CONST(6972.1392211168532 / 8.0), REAL_CONST(6984.3256112330409 / 8.0),
    REAL_CONST(6996.5173194346862 / 8.0), REAL_CONST(7008.7143410862773 / 8.0), REAL_CONST(7020.9166715623942 / 8.0), REAL_CONST(7033.1243062476678 / 8.0), REAL_CONST(7045.3372405367481 / 8.0),
    REAL_CONST(7057.5554698342685 / 8.0), REAL_CONST(7069.7789895548103 / 8.0), REAL_CONST(7082.0077951228714 / 8.0), REAL_CONST(7094.2418819728273 / 8.0), REAL_CONST(7106.4812455489018 / 8.0),
    REAL_CONST(7118.7258813051285 / 8.0), REAL_CONST(7130.9757847053224 / 8.0), REAL_CONST(7143.2309512230404 / 8.0), REAL_CONST(7155.4913763415516 / 8.0), REAL_CONST(7167.7570555538041 / 8.0),
    REAL_CONST(7180.0279843623894 / 8.0), REAL_CONST(7192.3041582795131 / 8.0), REAL_CONST(7204.5855728269571 / 8.0), REAL_CONST(7216.8722235360519 / 8.0), REAL_CONST(7229.1641059476406 / 8.0),
    REAL_CONST(7241.4612156120484 / 8.0), REAL_CONST(7253.7635480890503 / 8.0), REAL_CONST(7266.0710989478375 / 8.0), REAL_CONST(7278.3838637669869 / 8.0), REAL_CONST(7290.7018381344296 / 8.0),
    REAL_CONST(7303.0250176474174 / 8.0), REAL_CONST(7315.3533979124932 / 8.0), REAL_CONST(7327.6869745454596 / 8.0), REAL_CONST(7340.0257431713462 / 8.0), REAL_CONST(7352.3696994243801 / 8.0),
    REAL_CONST(7364.7188389479543 / 8.0), REAL_CONST(7377.0731573945968 / 8.0), REAL_CONST(7389.4326504259407 / 8.0), REAL_CONST(7401.7973137126937 / 8.0), REAL_CONST(7414.1671429346061 / 8.0),
    REAL_CONST(7426.5421337804428 / 8.0), REAL_CONST(7438.922281947951 / 8.0),  REAL_CONST(7451.3075831438346 / 8.0), REAL_CONST(7463.6980330837177 / 8.0), REAL_CONST(7476.0936274921214 / 8.0),
    REAL_CONST(7488.4943621024304 / 8.0), REAL_CONST(7500.9002326568652 / 8.0), REAL_CONST(7513.3112349064522 / 8.0), REAL_CONST(7525.7273646109943 / 8.0), REAL_CONST(7538.1486175390446 / 8.0),
    REAL_CONST(7550.5749894678729 / 8.0), REAL_CONST(7563.0064761834419 / 8.0), REAL_CONST(7575.4430734803736 / 8.0), REAL_CONST(7587.8847771619248 / 8.0), REAL_CONST(7600.3315830399597 / 8.0),
    REAL_CONST(7612.7834869349153 / 8.0), REAL_CONST(7625.24048467578 / 8.0),   REAL_CONST(7637.7025721000637 / 8.0), REAL_CONST(7650.1697450537677 / 8.0), REAL_CONST(7662.6419993913596 / 8.0),
    REAL_CONST(7675.1193309757446 / 8.0), REAL_CONST(7687.6017356782404 / 8.0), REAL_CONST(7700.0892093785433 / 8.0), REAL_CONST(7712.5817479647112 / 8.0), REAL_CONST(7725.079347333125 / 8.0),
    REAL_CONST(7737.5820033884729 / 8.0), REAL_CONST(7750.0897120437139 / 8.0), REAL_CONST(7762.6024692200581 / 8.0), REAL_CONST(7775.1202708469355 / 8.0), REAL_CONST(7787.6431128619733 / 8.0),
    REAL_CONST(7800.1709912109645 / 8.0), REAL_CONST(7812.7039018478481 / 8.0), REAL_CONST(7825.2418407346768 / 8.0), REAL_CONST(7837.7848038415968 / 8.0), REAL_CONST(7850.3327871468155 / 8.0),
    REAL_CONST(7862.8857866365806 / 8.0), REAL_CONST(7875.4437983051539 / 8.0), REAL_CONST(7888.006818154784 / 8.0),  REAL_CONST(7900.5748421956796 / 8.0), REAL_CONST(7913.1478664459901 / 8.0),
    REAL_CONST(7925.725886931772 / 8.0),  REAL_CONST(7938.3088996869719 / 8.0), REAL_CONST(7950.8969007533951 / 8.0), REAL_CONST(7963.4898861806851 / 8.0), REAL_CONST(7976.0878520262959 / 8.0),
    REAL_CONST(7988.6907943554688 / 8.0), REAL_CONST(8001.2987092412086 / 8.0), REAL_CONST(8013.911592764257 / 8.0),  REAL_CONST(8026.5294410130691 / 8.0), REAL_CONST(8039.1522500837891 / 8.0),
    REAL_CONST(8051.7800160802271 / 8.0), REAL_CONST(8064.412735113835 / 8.0),  REAL_CONST(8077.0504033036796 / 8.0), REAL_CONST(8089.6930167764222 / 8.0), REAL_CONST(8102.3405716662946 / 8.0),
    REAL_CONST(8114.9930641150731 / 8.0), REAL_CONST(8127.6504902720571 / 8.0), REAL_CONST(8140.3128462940449 / 8.0), REAL_CONST(8152.9801283453098 / 8.0), REAL_CONST(8165.6523325975786 / 8.0),
    REAL_CONST(8178.3294552300049 / 8.0), REAL_CONST(8191.0114924291529 / 8.0), REAL_CONST(8203.6984403889655 / 8.0), REAL_CONST(8216.3902953107463 / 8.0), REAL_CONST(8229.0870534031419 / 8.0),
    REAL_CONST(8241.7887108821069 / 8.0), REAL_CONST(8254.4952639708936 / 8.0), REAL_CONST(8267.2067089000211 / 8.0), REAL_CONST(8279.9230419072574 / 8.0), REAL_CONST(8292.6442592375952 / 8.0),
    REAL_CONST(8305.3703571432306 / 8.0), REAL_CONST(8318.101331883543 / 8.0),  REAL_CONST(8330.8371797250657 / 8.0), REAL_CONST(8343.577896941475 / 8.0),  REAL_CONST(8356.3234798135582 / 8.0),
    REAL_CONST(8369.0739246291978 / 8.0), REAL_CONST(8381.8292276833508 / 8.0), REAL_CONST(8394.5893852780209 / 8.0), REAL_CONST(8407.3543937222421 / 8.0), REAL_CONST(8420.1242493320569 / 8.0),
    REAL_CONST(8432.8989484304948 / 8.0), REAL_CONST(8445.6784873475499 / 8.0), REAL_CONST(8458.4628624201578 / 8.0), REAL_CONST(8471.2520699921806 / 8.0), REAL_CONST(8484.0461064143838 / 8.0),
    REAL_CONST(8496.8449680444082 / 8.0), REAL_CONST(8509.6486512467636 / 8.0), REAL_CONST(8522.4571523927953 / 8.0), REAL_CONST(8535.270467860666 / 8.0),  REAL_CONST(8548.0885940353437 / 8.0),
    REAL_CONST(8560.9115273085663 / 8.0), REAL_CONST(8573.7392640788403 / 8.0), REAL_CONST(8586.5718007514006 / 8.0), REAL_CONST(8599.4091337382069 / 8.0), REAL_CONST(8612.2512594579148 / 8.0),
    REAL_CONST(8625.0981743358552 / 8.0), REAL_CONST(8637.9498748040205 / 8.0), REAL_CONST(8650.8063573010386 / 8.0), REAL_CONST(8663.6676182721567 / 8.0), REAL_CONST(8676.533654169225 / 8.0),
    REAL_CONST(8689.4044614506638 / 8.0), REAL_CONST(8702.2800365814601 / 8.0), REAL_CONST(8715.1603760331418 / 8.0), REAL_CONST(8728.0454762837508 / 8.0), REAL_CONST(8740.9353338178389 / 8.0),
    REAL_CONST(8753.8299451264356 / 8.0), REAL_CONST(8766.7293067070332 / 8.0), REAL_CONST(8779.6334150635721 / 8.0), REAL_CONST(8792.5422667064158 / 8.0), REAL_CONST(8805.4558581523324 / 8.0),
    REAL_CONST(8818.3741859244819 / 8.0), REAL_CONST(8831.2972465523908 / 8.0), REAL_CONST(8844.2250365719356 / 8.0), REAL_CONST(8857.1575525253265 / 8.0), REAL_CONST(8870.0947909610859 / 8.0),
    REAL_CONST(8883.0367484340295 / 8.0), REAL_CONST(8895.9834215052524 / 8.0), REAL_CONST(8908.934806742107 / 8.0),  REAL_CONST(8921.8909007181846 / 8.0), REAL_CONST(8934.8517000132997 / 8.0),
    REAL_CONST(8947.817201213471 / 8.0),  REAL_CONST(8960.7874009109 / 8.0),    REAL_CONST(8973.7622957039603 / 8.0), REAL_CONST(8986.7418821971733 / 8.0), REAL_CONST(8999.7261570011924 / 8.0),
    REAL_CONST(9012.7151167327884 / 8.0), REAL_CONST(9025.7087580148236 / 8.0), REAL_CONST(9038.7070774762469 / 8.0), REAL_CONST(9051.7100717520643 / 8.0), REAL_CONST(9064.7177374833282 / 8.0),
    REAL_CONST(9077.7300713171153 / 8.0), REAL_CONST(9090.7470699065179 / 8.0), REAL_CONST(9103.7687299106146 / 8.0), REAL_CONST(9116.7950479944648 / 8.0), REAL_CONST(9129.8260208290812 / 8.0),
    REAL_CONST(9142.8616450914233 / 8.0), REAL_CONST(9155.9019174643727 / 8.0), REAL_CONST(9168.9468346367157 / 8.0), REAL_CONST(9181.9963933031358 / 8.0), REAL_CONST(9195.0505901641845 / 8.0),
    REAL_CONST(9208.1094219262741 / 8.0), REAL_CONST(9221.1728853016557 / 8.0), REAL_CONST(9234.240977008405 / 8.0),  REAL_CONST(9247.3136937704076 / 8.0), REAL_CONST(9260.3910323173386 / 8.0),
    REAL_CONST(9273.472989384647 / 8.0),  REAL_CONST(9286.5595617135423 / 8.0), REAL_CONST(9299.6507460509747 / 8.0), REAL_CONST(9312.7465391496207 / 8.0), REAL_CONST(9325.8469377678684 / 8.0),
    REAL_CONST(9338.9519386698012 / 8.0), REAL_CONST(9352.0615386251757 / 8.0), REAL_CONST(9365.1757344094131 / 8.0), REAL_CONST(9378.2945228035842 / 8.0), REAL_CONST(9391.4179005943843 / 8.0),
    REAL_CONST(9404.5458645741273 / 8.0), REAL_CONST(9417.6784115407263 / 8.0), REAL_CONST(9430.8155382976747 / 8.0), REAL_CONST(9443.9572416540359 / 8.0), REAL_CONST(9457.1035184244265 / 8.0),
    REAL_CONST(9470.2543654290002 / 8.0), REAL_CONST(9483.4097794934296 / 8.0), REAL_CONST(9496.5697574488931 / 8.0), REAL_CONST(9509.7342961320664 / 8.0), REAL_CONST(9522.9033923850911 / 8.0),
    REAL_CONST(9536.0770430555804 / 8.0), REAL_CONST(9549.2552449965824 / 8.0), REAL_CONST(9562.4379950665825 / 8.0), REAL_CONST(9575.6252901294793 / 8.0), REAL_CONST(9588.8171270545736 / 8.0),
    REAL_CONST(9602.0135027165488 / 8.0), REAL_CONST(9615.2144139954635 / 8.0), REAL_CONST(9628.4198577767274 / 8.0), REAL_CONST(9641.629830951093 / 8.0),  REAL_CONST(9654.844330414644 / 8.0),
    REAL_CONST(9668.0633530687719 / 8.0), REAL_CONST(9681.286895820167 / 8.0),  REAL_CONST(9694.5149555808002 / 8.0), REAL_CONST(9707.7475292679192 / 8.0), REAL_CONST(9720.9846138040157 / 8.0),
    REAL_CONST(9734.2262061168276 / 8.0), REAL_CONST(9747.4723031393187 / 8.0), REAL_CONST(9760.7229018096641 / 8.0), REAL_CONST(9773.9779990712323 / 8.0), REAL_CONST(9787.2375918725811 / 8.0),
    REAL_CONST(9800.5016771674327 / 8.0), REAL_CONST(9813.7702519146696 / 8.0), REAL_CONST(9827.0433130783094 / 8.0), REAL_CONST(9840.3208576275028 / 8.0), REAL_CONST(9853.602882536512 / 8.0),
    REAL_CONST(9866.8893847846994 / 8.0), REAL_CONST(9880.1803613565116 / 8.0), REAL_CONST(9893.4758092414686 / 8.0), REAL_CONST(9906.7757254341523 / 8.0), REAL_CONST(9920.0801069341851 / 8.0),
    REAL_CONST(9933.3889507462245 / 8.0), REAL_CONST(9946.7022538799429 / 8.0), REAL_CONST(9960.0200133500221 / 8.0), REAL_CONST(9973.3422261761298 / 8.0), REAL_CONST(9986.6688893829159 / 8.0),
    REAL_CONST(9999.9999999999945 / 8.0), REAL_CONST(10013.335555061929 / 8.0), REAL_CONST(10026.675551608221 / 8.0), REAL_CONST(10040.019986683301 / 8.0), REAL_CONST(10053.368857336509 / 8.0),
    REAL_CONST(10066.722160622081 / 8.0), REAL_CONST(10080.079893599144 / 8.0), REAL_CONST(10093.442053331697 / 8.0), REAL_CONST(10106.808636888598 / 8.0), REAL_CONST(10120.179641343551 / 8.0),
    REAL_CONST(10133.555063775095 / 8.0), REAL_CONST(10146.934901266595 / 8.0), REAL_CONST(10160.31915090622 / 8.0),  REAL_CONST(10173.707809786936 / 8.0), REAL_CONST(10187.100875006496 / 8.0),
    REAL_CONST(10200.498343667417 / 8.0), REAL_CONST(10213.900212876984 / 8.0), REAL_CONST(10227.306479747222 / 8.0), REAL_CONST(10240.717141394889 / 8.0), REAL_CONST(10254.132194941467 / 8.0),
    REAL_CONST(10267.551637513146 / 8.0), REAL_CONST(10280.975466240814 / 8.0), REAL_CONST(10294.40367826004 / 8.0),  REAL_CONST(10307.836270711066 / 8.0), REAL_CONST(10321.273240738796 / 8.0),
    REAL_CONST(10334.71458549278 / 8.0),
};

 const uint8_t PreSortCB_STD[NUM_CB] = {11, 9, 7, 5, 3, 1};
 const uint8_t PreSortCB_ER[NUM_CB_ER] = {11, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 9, 7, 5, 3, 1};
/* 8.5.3.3.2 Derivation of segment width */
 const uint8_t maxCwLen[MAX_CB] = {0, 11, 9, 20, 16, 13, 11, 14, 12, 17, 14, 49, 0, 0, 0, 0, 14, 17, 21, 21, 25, 25, 29, 29, 29, 29, 33, 33, 33, 37, 37, 41};
/* bit-twiddling helpers */
 const uint8_t  S[] = {1, 2, 4, 8, 16};
 const uint32_t B[] = {0x55555555, 0x33333333, 0x0F0F0F0F, 0x00FF00FF, 0x0000FFFF};

 int32_t const pow2_table[] = {COEF_CONST(1.0), COEF_CONST(1.18920711500272), COEF_CONST(1.41421356237310), COEF_CONST(1.68179283050743)};

 const int32_t p8_13_20[7] = {FRAC_CONST(0.00746082949812),
                                    FRAC_CONST(0.02270420949825),
                                    FRAC_CONST(0.04546865930473),
                                    FRAC_CONST(0.07266113929591),
                                    FRAC_CONST(0.09885108575264),
                                    FRAC_CONST(0.11793710567217),
                                    FRAC_CONST(0.125)};
 const int32_t p2_13_20[7] = {FRAC_CONST(0.0), FRAC_CONST(0.01899487526049), FRAC_CONST(0.0), FRAC_CONST(-0.07293139167538), FRAC_CONST(0.0), FRAC_CONST(0.30596630545168), FRAC_CONST(0.5)};
 const int32_t p12_13_34[7] = {FRAC_CONST(0.04081179924692), FRAC_CONST(0.03812810994926), FRAC_CONST(0.05144908135699), FRAC_CONST(0.06399831151592),
                                     FRAC_CONST(0.07428313801106), FRAC_CONST(0.08100347892914), FRAC_CONST(0.08333333333333)};
 const int32_t p8_13_34[7] = {FRAC_CONST(0.01565675600122),
                                    FRAC_CONST(0.03752716391991),
                                    FRAC_CONST(0.05417891378782),
                                    FRAC_CONST(0.08417044116767),
                                    FRAC_CONST(0.10307344158036),
                                    FRAC_CONST(0.12222452249753),
                                    FRAC_CONST(0.125)};
 const int32_t p4_13_34[7] = {FRAC_CONST(-0.05908211155639), FRAC_CONST(-0.04871498374946), FRAC_CONST(0.0), FRAC_CONST(0.07778723915851),
                                    FRAC_CONST(0.16486303567403),  FRAC_CONST(0.23279856662996),  FRAC_CONST(0.25)};

 const uint8_t delay_length_d[NO_ALLPASS_LINKS] = {3, 4, 5}; /* d_48kHz */

 const int32_t filter_a[NO_ALLPASS_LINKS] = {FRAC_CONST(0.65143905753106), FRAC_CONST(0.56471812200776), FRAC_CONST(0.48954165955695)}; /* a(m) = exp(-d_48kHz(m)/7) */

 const uint8_t group_border20[10 + 12 + 1] = {6,  7,  0, 1, 2, 3, /* 6 subqmf subbands */
                                                    9,  8,              /* 2 subqmf subbands */
                                                    10, 11,             /* 2 subqmf subbands */
                                                    3,  4,  5, 6, 7, 8, 9, 11, 14, 18, 23, 35, 64};

 const uint8_t group_border34[32 + 18 + 1] = {0,       1,       2,       3,       4,       5,       6,       7,       8,       9,       10,      11, /* 12 subqmf subbands */
                                                    12,      13,      14,      15,      16,      17,      18,      19,                                     /*  8 subqmf subbands */
                                                    20,      21,      22,      23,                                                                         /*  4 subqmf subbands */
                                                    24,      25,      26,      27,                                                                         /*  4 subqmf subbands */
                                                    28,      29,      30,      31,                                                                         /*  4 subqmf subbands */
                                                    32 - 27, 33 - 27, 34 - 27, 35 - 27, 36 - 27, 37 - 27, 38 - 27, 40 - 27, 42 - 27, 44 - 27, 46 - 27, 48 - 27,
                                                    51 - 27, 54 - 27, 57 - 27, 60 - 27, 64 - 27, 68 - 27, 91 - 27};

 const uint16_t map_group2bk20[10 + 12] = {(NEGATE_IPD_MASK | 1), (NEGATE_IPD_MASK | 0), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
 const uint16_t map_group2bk34[32 + 18] = {0,
                                                 1,
                                                 2,
                                                 3,
                                                 4,
                                                 5,
                                                 6,
                                                 6,
                                                 7,
                                                 (NEGATE_IPD_MASK | 2),
                                                 (NEGATE_IPD_MASK | 1),
                                                 (NEGATE_IPD_MASK | 0),
                                                 10,
                                                 10,
                                                 4,
                                                 5,
                                                 6,
                                                 7,
                                                 8,
                                                 9,
                                                 10,
                                                 11,
                                                 12,
                                                 9,
                                                 14,
                                                 11,
                                                 12,
                                                 13,
                                                 14,
                                                 15,
                                                 16,
                                                 13,
                                                 16,
                                                 17,
                                                 18,
                                                 19,
                                                 20,
                                                 21,
                                                 22,
                                                 23,
                                                 24,
                                                 25,
                                                 26,
                                                 27,
                                                 28,
                                                 29,
                                                 30,
                                                 31,
                                                 32,
                                                 33};

/* RE(ps->Phi_Fract_Qmf[j]) = (float)cos(M_PI*(j+0.5)*(0.39)); */
/* IM(ps->Phi_Fract_Qmf[j]) = (float)sin(M_PI*(j+0.5)*(0.39)); */
 const complex_t Phi_Fract_Qmf[] = {
    {FRAC_CONST(0.8181497455), FRAC_CONST(0.5750052333)},   {FRAC_CONST(-0.2638730407), FRAC_CONST(0.9645574093)},  {FRAC_CONST(-0.9969173074), FRAC_CONST(0.0784590989)},
    {FRAC_CONST(-0.4115143716), FRAC_CONST(-0.9114032984)}, {FRAC_CONST(0.7181262970), FRAC_CONST(-0.6959127784)},  {FRAC_CONST(0.8980275989), FRAC_CONST(0.4399391711)},
    {FRAC_CONST(-0.1097343117), FRAC_CONST(0.9939609766)},  {FRAC_CONST(-0.9723699093), FRAC_CONST(0.2334453613)},  {FRAC_CONST(-0.5490227938), FRAC_CONST(-0.8358073831)},
    {FRAC_CONST(0.6004202366), FRAC_CONST(-0.7996846437)},  {FRAC_CONST(0.9557930231), FRAC_CONST(0.2940403223)},   {FRAC_CONST(0.0471064523), FRAC_CONST(0.9988898635)},
    {FRAC_CONST(-0.9238795042), FRAC_CONST(0.3826834261)},  {FRAC_CONST(-0.6730124950), FRAC_CONST(-0.7396311164)}, {FRAC_CONST(0.4679298103), FRAC_CONST(-0.8837656379)},
    {FRAC_CONST(0.9900236726), FRAC_CONST(0.1409012377)},   {FRAC_CONST(0.2027872950), FRAC_CONST(0.9792228341)},   {FRAC_CONST(-0.8526401520), FRAC_CONST(0.5224985480)},
    {FRAC_CONST(-0.7804304361), FRAC_CONST(-0.6252426505)}, {FRAC_CONST(0.3239174187), FRAC_CONST(-0.9460853338)},  {FRAC_CONST(0.9998766184), FRAC_CONST(-0.0157073177)},
    {FRAC_CONST(0.3534748554), FRAC_CONST(0.9354440570)},   {FRAC_CONST(-0.7604059577), FRAC_CONST(0.6494480371)},  {FRAC_CONST(-0.8686315417), FRAC_CONST(-0.4954586625)},
    {FRAC_CONST(0.1719291061), FRAC_CONST(-0.9851093292)},  {FRAC_CONST(0.9851093292), FRAC_CONST(-0.1719291061)},  {FRAC_CONST(0.4954586625), FRAC_CONST(0.8686315417)},
    {FRAC_CONST(-0.6494480371), FRAC_CONST(0.7604059577)},  {FRAC_CONST(-0.9354440570), FRAC_CONST(-0.3534748554)}, {FRAC_CONST(0.0157073177), FRAC_CONST(-0.9998766184)},
    {FRAC_CONST(0.9460853338), FRAC_CONST(-0.3239174187)},  {FRAC_CONST(0.6252426505), FRAC_CONST(0.7804304361)},   {FRAC_CONST(-0.5224985480), FRAC_CONST(0.8526401520)},
    {FRAC_CONST(-0.9792228341), FRAC_CONST(-0.2027872950)}, {FRAC_CONST(-0.1409012377), FRAC_CONST(-0.9900236726)}, {FRAC_CONST(0.8837656379), FRAC_CONST(-0.4679298103)},
    {FRAC_CONST(0.7396311164), FRAC_CONST(0.6730124950)},   {FRAC_CONST(-0.3826834261), FRAC_CONST(0.9238795042)},  {FRAC_CONST(-0.9988898635), FRAC_CONST(-0.0471064523)},
    {FRAC_CONST(-0.2940403223), FRAC_CONST(-0.9557930231)}, {FRAC_CONST(0.7996846437), FRAC_CONST(-0.6004202366)},  {FRAC_CONST(0.8358073831), FRAC_CONST(0.5490227938)},
    {FRAC_CONST(-0.2334453613), FRAC_CONST(0.9723699093)},  {FRAC_CONST(-0.9939609766), FRAC_CONST(0.1097343117)},  {FRAC_CONST(-0.4399391711), FRAC_CONST(-0.8980275989)},
    {FRAC_CONST(0.6959127784), FRAC_CONST(-0.7181262970)},  {FRAC_CONST(0.9114032984), FRAC_CONST(0.4115143716)},   {FRAC_CONST(-0.0784590989), FRAC_CONST(0.9969173074)},
    {FRAC_CONST(-0.9645574093), FRAC_CONST(0.2638730407)},  {FRAC_CONST(-0.5750052333), FRAC_CONST(-0.8181497455)}, {FRAC_CONST(0.5750052333), FRAC_CONST(-0.8181497455)},
    {FRAC_CONST(0.9645574093), FRAC_CONST(0.2638730407)},   {FRAC_CONST(0.0784590989), FRAC_CONST(0.9969173074)},   {FRAC_CONST(-0.9114032984), FRAC_CONST(0.4115143716)},
    {FRAC_CONST(-0.6959127784), FRAC_CONST(-0.7181262970)}, {FRAC_CONST(0.4399391711), FRAC_CONST(-0.8980275989)},  {FRAC_CONST(0.9939609766), FRAC_CONST(0.1097343117)},
    {FRAC_CONST(0.2334453613), FRAC_CONST(0.9723699093)},   {FRAC_CONST(-0.8358073831), FRAC_CONST(0.5490227938)},  {FRAC_CONST(-0.7996846437), FRAC_CONST(-0.6004202366)},
    {FRAC_CONST(0.2940403223), FRAC_CONST(-0.9557930231)},  {FRAC_CONST(0.9988898635), FRAC_CONST(-0.0471064523)},  {FRAC_CONST(0.3826834261), FRAC_CONST(0.9238795042)},
    {FRAC_CONST(-0.7396311164), FRAC_CONST(0.6730124950)}};

/* RE(Phi_Fract_SubQmf20[j]) = (float)cos(M_PI*f_center_20[j]*0.39); */
/* IM(Phi_Fract_SubQmf20[j]) = (float)sin(M_PI*f_center_20[j]*0.39); */
 const complex_t Phi_Fract_SubQmf20[] = {
    {FRAC_CONST(0.9882950187), FRAC_CONST(0.1525546312)},  {FRAC_CONST(0.8962930441), FRAC_CONST(0.4434623122)},  {FRAC_CONST(0.7208535671), FRAC_CONST(0.6930873394)},
    {FRAC_CONST(0.4783087075), FRAC_CONST(0.8781917691)},  {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)},  {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)},
    {FRAC_CONST(0.8962930441), FRAC_CONST(-0.4434623122)}, {FRAC_CONST(0.9882950187), FRAC_CONST(-0.1525546312)}, {FRAC_CONST(-0.5424415469), FRAC_CONST(0.8400935531)},
    {FRAC_CONST(0.0392598175), FRAC_CONST(0.9992290139)},  {FRAC_CONST(-0.9268565774), FRAC_CONST(0.3754155636)}, {FRAC_CONST(-0.9741733670), FRAC_CONST(-0.2258012742)}};

/* RE(Phi_Fract_SubQmf34[j]) = (float)cos(M_PI*f_center_34[j]*0.39); */
/* IM(Phi_Fract_SubQmf34[j]) = (float)sin(M_PI*f_center_34[j]*0.39); */
 const complex_t Phi_Fract_SubQmf34[] = {
    {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)},   {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)},   {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)},
    {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)},   {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)},   {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)},
    {FRAC_CONST(0.3387379348), FRAC_CONST(0.9408807755)},   {FRAC_CONST(0.3387379348), FRAC_CONST(0.9408807755)},   {FRAC_CONST(0.3387379348), FRAC_CONST(0.9408807755)},
    {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)},   {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)},   {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)},
    {FRAC_CONST(-0.7705132365), FRAC_CONST(0.6374239922)},  {FRAC_CONST(-0.7705132365), FRAC_CONST(0.6374239922)},  {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)},
    {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)},   {FRAC_CONST(0.3387379348), FRAC_CONST(0.9408807755)},   {FRAC_CONST(0.3387379348), FRAC_CONST(0.9408807755)},
    {FRAC_CONST(0.3387379348), FRAC_CONST(0.9408807755)},   {FRAC_CONST(0.3387379348), FRAC_CONST(0.9408807755)},   {FRAC_CONST(-0.7705132365), FRAC_CONST(0.6374239922)},
    {FRAC_CONST(-0.7705132365), FRAC_CONST(0.6374239922)},  {FRAC_CONST(-0.8607420325), FRAC_CONST(-0.5090414286)}, {FRAC_CONST(0.3387379348), FRAC_CONST(0.9408807755)},
    {FRAC_CONST(0.1873813123), FRAC_CONST(-0.9822872281)},  {FRAC_CONST(-0.7705132365), FRAC_CONST(0.6374239922)},  {FRAC_CONST(-0.8607420325), FRAC_CONST(-0.5090414286)},
    {FRAC_CONST(-0.8607420325), FRAC_CONST(-0.5090414286)}, {FRAC_CONST(0.1873813123), FRAC_CONST(-0.9822872281)},  {FRAC_CONST(0.1873813123), FRAC_CONST(-0.9822872281)},
    {FRAC_CONST(0.9876883626), FRAC_CONST(-0.1564344615)},  {FRAC_CONST(-0.8607420325), FRAC_CONST(-0.5090414286)}};

/* RE(Q_Fract_allpass_Qmf[j][i]) = (float)cos(M_PI*(j+0.5)*(frac_delay_q[i])); */
/* IM(Q_Fract_allpass_Qmf[j][i]) = (float)sin(M_PI*(j+0.5)*(frac_delay_q[i])); */
 const complex_t Q_Fract_allpass_Qmf[][3] = {
    {{FRAC_CONST(0.7804303765), FRAC_CONST(0.6252426505)}, {FRAC_CONST(0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(0.8550928831), FRAC_CONST(0.5184748173)}},
    {{FRAC_CONST(-0.4399392009), FRAC_CONST(0.8980275393)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(-0.0643581524), FRAC_CONST(0.9979268909)}},
    {{FRAC_CONST(-0.9723699093), FRAC_CONST(-0.2334454209)}, {FRAC_CONST(0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(-0.9146071672), FRAC_CONST(0.4043435752)}},
    {{FRAC_CONST(0.0157073960), FRAC_CONST(-0.9998766184)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(-0.7814115286), FRAC_CONST(-0.6240159869)}},
    {{FRAC_CONST(0.9792228341), FRAC_CONST(-0.2027871907)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(0.1920081824), FRAC_CONST(-0.9813933372)}},
    {{FRAC_CONST(0.4115142524), FRAC_CONST(0.9114032984)}, {FRAC_CONST(0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(0.9589683414), FRAC_CONST(-0.2835132182)}},
    {{FRAC_CONST(-0.7996847630), FRAC_CONST(0.6004201174)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(0.6947838664), FRAC_CONST(0.7192186117)}},
    {{FRAC_CONST(-0.7604058385), FRAC_CONST(-0.6494481564)}, {FRAC_CONST(0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(-0.3164770305), FRAC_CONST(0.9486001730)}},
    {{FRAC_CONST(0.4679299891), FRAC_CONST(-0.8837655187)}, {FRAC_CONST(0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(-0.9874414206), FRAC_CONST(0.1579856575)}},
    {{FRAC_CONST(0.9645573497), FRAC_CONST(0.2638732493)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(-0.5966450572), FRAC_CONST(-0.8025052547)}},
    {{FRAC_CONST(-0.0471066870), FRAC_CONST(0.9988898635)}, {FRAC_CONST(0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(0.4357025325), FRAC_CONST(-0.9000906944)}},
    {{FRAC_CONST(-0.9851093888), FRAC_CONST(0.1719288528)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(0.9995546937), FRAC_CONST(-0.0298405960)}},
    {{FRAC_CONST(-0.3826831877), FRAC_CONST(-0.9238796234)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(0.4886211455), FRAC_CONST(0.8724960685)}},
    {{FRAC_CONST(0.8181498647), FRAC_CONST(-0.5750049949)}, {FRAC_CONST(0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(-0.5477093458), FRAC_CONST(0.8366686702)}},
    {{FRAC_CONST(0.7396308780), FRAC_CONST(0.6730127335)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(-0.9951074123), FRAC_CONST(-0.0987988561)}},
    {{FRAC_CONST(-0.4954589605), FRAC_CONST(0.8686313629)}, {FRAC_CONST(0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(-0.3725017905), FRAC_CONST(-0.9280315042)}},
    {{FRAC_CONST(-0.9557929039), FRAC_CONST(-0.2940406799)}, {FRAC_CONST(0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(0.6506417990), FRAC_CONST(-0.7593847513)}},
    {{FRAC_CONST(0.0784594864), FRAC_CONST(-0.9969173074)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(0.9741733670), FRAC_CONST(0.2258014232)}},
    {{FRAC_CONST(0.9900237322), FRAC_CONST(-0.1409008205)}, {FRAC_CONST(0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(0.2502108514), FRAC_CONST(0.9681913853)}},
    {{FRAC_CONST(0.3534744382), FRAC_CONST(0.9354441762)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(-0.7427945137), FRAC_CONST(0.6695194840)}},
    {{FRAC_CONST(-0.8358076215), FRAC_CONST(0.5490224361)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(-0.9370992780), FRAC_CONST(-0.3490629196)}},
    {{FRAC_CONST(-0.7181259394), FRAC_CONST(-0.6959131360)}, {FRAC_CONST(0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(-0.1237744763), FRAC_CONST(-0.9923103452)}},
    {{FRAC_CONST(0.5224990249), FRAC_CONST(-0.8526399136)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(0.8226406574), FRAC_CONST(-0.5685616732)}},
    {{FRAC_CONST(0.9460852146), FRAC_CONST(0.3239179254)}, {FRAC_CONST(0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(0.8844994903), FRAC_CONST(0.4665412009)}},
    {{FRAC_CONST(-0.1097348556), FRAC_CONST(0.9939609170)}, {FRAC_CONST(0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(-0.0047125919), FRAC_CONST(0.9999889135)}},
    {{FRAC_CONST(-0.9939610362), FRAC_CONST(0.1097337380)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(-0.8888573647), FRAC_CONST(0.4581840038)}},
    {{FRAC_CONST(-0.3239168525), FRAC_CONST(-0.9460855722)}, {FRAC_CONST(0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(-0.8172453642), FRAC_CONST(-0.5762898922)}},
    {{FRAC_CONST(0.8526405096), FRAC_CONST(-0.5224980116)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(0.1331215799), FRAC_CONST(-0.9910997152)}},
    {{FRAC_CONST(0.6959123611), FRAC_CONST(0.7181267142)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(0.9403476119), FRAC_CONST(-0.3402152061)}},
    {{FRAC_CONST(-0.5490233898), FRAC_CONST(0.8358070254)}, {FRAC_CONST(0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(0.7364512086), FRAC_CONST(0.6764906645)}},
    {{FRAC_CONST(-0.9354437590), FRAC_CONST(-0.3534754813)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(-0.2593250275), FRAC_CONST(0.9657900929)}},
    {{FRAC_CONST(0.1409019381), FRAC_CONST(-0.9900235534)}, {FRAC_CONST(0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(-0.9762582779), FRAC_CONST(0.2166097313)}},
    {{FRAC_CONST(0.9969173670), FRAC_CONST(-0.0784583688)}, {FRAC_CONST(0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(-0.6434556246), FRAC_CONST(-0.7654833794)}},
    {{FRAC_CONST(0.2940396070), FRAC_CONST(0.9557932615)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(0.3812320232), FRAC_CONST(-0.9244794250)}},
    {{FRAC_CONST(-0.8686318994), FRAC_CONST(0.4954580069)}, {FRAC_CONST(0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(0.9959943891), FRAC_CONST(-0.0894154981)}},
    {{FRAC_CONST(-0.6730118990), FRAC_CONST(-0.7396316528)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(0.5397993922), FRAC_CONST(0.8417937160)}},
    {{FRAC_CONST(0.5750059485), FRAC_CONST(-0.8181492686)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(-0.4968227744), FRAC_CONST(0.8678520322)}},
    {{FRAC_CONST(0.9238792062), FRAC_CONST(0.3826842010)}, {FRAC_CONST(0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(-0.9992290139), FRAC_CONST(-0.0392601527)}},
    {{FRAC_CONST(-0.1719299555), FRAC_CONST(0.9851091504)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(-0.4271997511), FRAC_CONST(-0.9041572809)}},
    {{FRAC_CONST(-0.9988899231), FRAC_CONST(0.0471055657)}, {FRAC_CONST(0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(0.6041822433), FRAC_CONST(-0.7968461514)}},
    {{FRAC_CONST(-0.2638721764), FRAC_CONST(-0.9645576477)}, {FRAC_CONST(0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(0.9859085083), FRAC_CONST(0.1672853529)}},
    {{FRAC_CONST(0.8837660551), FRAC_CONST(-0.4679289758)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(0.3075223565), FRAC_CONST(0.9515408874)}},
    {{FRAC_CONST(0.6494473219), FRAC_CONST(0.7604066133)}, {FRAC_CONST(0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(-0.7015317082), FRAC_CONST(0.7126382589)}},
    {{FRAC_CONST(-0.6004210114), FRAC_CONST(0.7996840477)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(-0.9562535882), FRAC_CONST(-0.2925389707)}},
    {{FRAC_CONST(-0.9114028811), FRAC_CONST(-0.4115152657)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(-0.1827499419), FRAC_CONST(-0.9831594229)}},
    {{FRAC_CONST(0.2027882934), FRAC_CONST(-0.9792225957)}, {FRAC_CONST(0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(0.7872582674), FRAC_CONST(-0.6166234016)}},
    {{FRAC_CONST(0.9998766780), FRAC_CONST(-0.0157062728)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(0.9107555747), FRAC_CONST(0.4129458666)}},
    {{FRAC_CONST(0.2334443331), FRAC_CONST(0.9723701477)}, {FRAC_CONST(0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(0.0549497530), FRAC_CONST(0.9984891415)}},
    {{FRAC_CONST(-0.8980280757), FRAC_CONST(0.4399381876)}, {FRAC_CONST(0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(-0.8599416018), FRAC_CONST(0.5103924870)}},
    {{FRAC_CONST(-0.6252418160), FRAC_CONST(-0.7804310918)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(-0.8501682281), FRAC_CONST(-0.5265110731)}},
    {{FRAC_CONST(0.6252435446), FRAC_CONST(-0.7804297209)}, {FRAC_CONST(0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(0.0737608299), FRAC_CONST(-0.9972759485)}},
    {{FRAC_CONST(0.8980270624), FRAC_CONST(0.4399402142)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(0.9183775187), FRAC_CONST(-0.3957053721)}},
    {{FRAC_CONST(-0.2334465086), FRAC_CONST(0.9723696709)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(0.7754954696), FRAC_CONST(0.6313531399)}},
    {{FRAC_CONST(-0.9998766184), FRAC_CONST(-0.0157085191)}, {FRAC_CONST(0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(-0.2012493610), FRAC_CONST(0.9795400500)}},
    {{FRAC_CONST(-0.2027861029), FRAC_CONST(-0.9792230725)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(-0.9615978599), FRAC_CONST(0.2744622827)}},
    {{FRAC_CONST(0.9114037752), FRAC_CONST(-0.4115132093)}, {FRAC_CONST(0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(-0.6879743338), FRAC_CONST(-0.7257350087)}},
    {{FRAC_CONST(0.6004192233), FRAC_CONST(0.7996854186)}, {FRAC_CONST(0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(0.3254036009), FRAC_CONST(-0.9455752373)}},
    {{FRAC_CONST(-0.6494490504), FRAC_CONST(0.7604051232)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(0.9888865948), FRAC_CONST(-0.1486719251)}},
    {{FRAC_CONST(-0.8837650418), FRAC_CONST(-0.4679309726)}, {FRAC_CONST(0.9238795042), FRAC_CONST(-0.3826834261)}, {FRAC_CONST(0.5890548825), FRAC_CONST(0.8080930114)}},
    {{FRAC_CONST(0.2638743520), FRAC_CONST(-0.9645570517)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(0.9238795042)}, {FRAC_CONST(-0.4441666007), FRAC_CONST(0.8959442377)}},
    {{FRAC_CONST(0.9988898039), FRAC_CONST(0.0471078083)}, {FRAC_CONST(-0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(-0.9997915030), FRAC_CONST(0.0204183888)}},
    {{FRAC_CONST(0.1719277352), FRAC_CONST(0.9851095676)}, {FRAC_CONST(0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(-0.4803760946), FRAC_CONST(-0.8770626187)}},
    {{FRAC_CONST(-0.9238800406), FRAC_CONST(0.3826821446)}, {FRAC_CONST(-0.9238795042), FRAC_CONST(0.3826834261)}, {FRAC_CONST(0.5555707216), FRAC_CONST(-0.8314692974)}},
    {{FRAC_CONST(-0.5750041008), FRAC_CONST(-0.8181505203)}, {FRAC_CONST(0.3826834261), FRAC_CONST(-0.9238795042)}, {FRAC_CONST(0.9941320419), FRAC_CONST(0.1081734300)}},
};

/* RE(Q_Fract_allpass_SubQmf20[j][i]) = (float)cos(M_PI*f_center_20[j]*frac_delay_q[i]); */
/* IM(Q_Fract_allpass_SubQmf20[j][i]) = (float)sin(M_PI*f_center_20[j]*frac_delay_q[i]); */
 const complex_t Q_Fract_allpass_SubQmf20[][3] = {
    {{FRAC_CONST(0.9857769012), FRAC_CONST(0.1680592746)}, {FRAC_CONST(0.9569403529), FRAC_CONST(0.2902846634)}, {FRAC_CONST(0.9907300472), FRAC_CONST(0.1358452588)}},
    {{FRAC_CONST(0.8744080663), FRAC_CONST(0.4851911962)}, {FRAC_CONST(0.6343932748), FRAC_CONST(0.7730104327)}, {FRAC_CONST(0.9175986052), FRAC_CONST(0.3975082636)}},
    {{FRAC_CONST(0.6642524004), FRAC_CONST(0.7475083470)}, {FRAC_CONST(0.0980171412), FRAC_CONST(0.9951847196)}, {FRAC_CONST(0.7767338753), FRAC_CONST(0.6298289299)}},
    {{FRAC_CONST(0.3790524006), FRAC_CONST(0.9253752232)}, {FRAC_CONST(-0.4713967443), FRAC_CONST(0.8819212914)}, {FRAC_CONST(0.5785340071), FRAC_CONST(0.8156582713)}},
    {{FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}},
    {{FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}},
    {{FRAC_CONST(0.8744080663), FRAC_CONST(-0.4851911962)}, {FRAC_CONST(0.6343932748), FRAC_CONST(-0.7730104327)}, {FRAC_CONST(0.9175986052), FRAC_CONST(-0.3975082636)}},
    {{FRAC_CONST(0.9857769012), FRAC_CONST(-0.1680592746)}, {FRAC_CONST(0.9569403529), FRAC_CONST(-0.2902846634)}, {FRAC_CONST(0.9907300472), FRAC_CONST(-0.1358452588)}},
    {{FRAC_CONST(-0.7126385570), FRAC_CONST(0.7015314102)}, {FRAC_CONST(-0.5555702448), FRAC_CONST(-0.8314695954)}, {FRAC_CONST(-0.3305967748), FRAC_CONST(0.9437720776)}},
    {{FRAC_CONST(-0.1175374240), FRAC_CONST(0.9930684566)}, {FRAC_CONST(-0.9807852507), FRAC_CONST(0.1950903237)}, {FRAC_CONST(0.2066311091), FRAC_CONST(0.9784189463)}},
    {{FRAC_CONST(-0.9947921634), FRAC_CONST(0.1019244045)}, {FRAC_CONST(0.5555702448), FRAC_CONST(-0.8314695954)}, {FRAC_CONST(-0.7720130086), FRAC_CONST(0.6356067061)}},
    {{FRAC_CONST(-0.8400934935), FRAC_CONST(-0.5424416065)}, {FRAC_CONST(0.9807852507), FRAC_CONST(0.1950903237)}, {FRAC_CONST(-0.9896889329), FRAC_CONST(0.1432335079)}}};

/* RE(Q_Fract_allpass_SubQmf34[j][i]) = (float)cos(M_PI*f_center_34[j]*frac_delay_q[i]); */
/* IM(Q_Fract_allpass_SubQmf34[j][i]) = (float)sin(M_PI*f_center_34[j]*frac_delay_q[i]); */
 const complex_t Q_Fract_allpass_SubQmf34[][3] = {
    {{FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}},
    {{FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}},
    {{FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}},
    {{FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}},
    {{FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}},
    {{FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}},
    {{FRAC_CONST(0.2181432247), FRAC_CONST(0.9759167433)}, {FRAC_CONST(-0.7071067691), FRAC_CONST(0.7071067691)}, {FRAC_CONST(0.4623677433), FRAC_CONST(0.8866882324)}},
    {{FRAC_CONST(0.2181432247), FRAC_CONST(0.9759167433)}, {FRAC_CONST(-0.7071067691), FRAC_CONST(0.7071067691)}, {FRAC_CONST(0.4623677433), FRAC_CONST(0.8866882324)}},
    {{FRAC_CONST(0.2181432247), FRAC_CONST(0.9759167433)}, {FRAC_CONST(-0.7071067691), FRAC_CONST(0.7071067691)}, {FRAC_CONST(0.4623677433), FRAC_CONST(0.8866882324)}},
    {{FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}},
    {{FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}},
    {{FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}},
    {{FRAC_CONST(-0.9048270583), FRAC_CONST(0.4257792532)}, {FRAC_CONST(-0.0000000000), FRAC_CONST(-1.0000000000)}, {FRAC_CONST(-0.5724321604), FRAC_CONST(0.8199520707)}},
    {{FRAC_CONST(-0.9048270583), FRAC_CONST(0.4257792532)}, {FRAC_CONST(-0.0000000000), FRAC_CONST(-1.0000000000)}, {FRAC_CONST(-0.5724321604), FRAC_CONST(0.8199520707)}},
    {{FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}},
    {{FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(1.0000000000), FRAC_CONST(0.0000000000)}},
    {{FRAC_CONST(0.2181432247), FRAC_CONST(0.9759167433)}, {FRAC_CONST(-0.7071067691), FRAC_CONST(0.7071067691)}, {FRAC_CONST(0.4623677433), FRAC_CONST(0.8866882324)}},
    {{FRAC_CONST(0.2181432247), FRAC_CONST(0.9759167433)}, {FRAC_CONST(-0.7071067691), FRAC_CONST(0.7071067691)}, {FRAC_CONST(0.4623677433), FRAC_CONST(0.8866882324)}},
    {{FRAC_CONST(0.2181432247), FRAC_CONST(0.9759167433)}, {FRAC_CONST(-0.7071067691), FRAC_CONST(0.7071067691)}, {FRAC_CONST(0.4623677433), FRAC_CONST(0.8866882324)}},
    {{FRAC_CONST(0.2181432247), FRAC_CONST(0.9759167433)}, {FRAC_CONST(-0.7071067691), FRAC_CONST(0.7071067691)}, {FRAC_CONST(0.4623677433), FRAC_CONST(0.8866882324)}},
    {{FRAC_CONST(-0.9048270583), FRAC_CONST(0.4257792532)}, {FRAC_CONST(-0.0000000000), FRAC_CONST(-1.0000000000)}, {FRAC_CONST(-0.5724321604), FRAC_CONST(0.8199520707)}},
    {{FRAC_CONST(-0.9048270583), FRAC_CONST(0.4257792532)}, {FRAC_CONST(-0.0000000000), FRAC_CONST(-1.0000000000)}, {FRAC_CONST(-0.5724321604), FRAC_CONST(0.8199520707)}},
    {{FRAC_CONST(-0.6129069924), FRAC_CONST(-0.7901550531)}, {FRAC_CONST(0.7071067691), FRAC_CONST(0.7071067691)}, {FRAC_CONST(-0.9917160273), FRAC_CONST(-0.1284494549)}},
    {{FRAC_CONST(0.2181432247), FRAC_CONST(0.9759167433)}, {FRAC_CONST(-0.7071067691), FRAC_CONST(0.7071067691)}, {FRAC_CONST(0.4623677433), FRAC_CONST(0.8866882324)}},
    {{FRAC_CONST(0.6374240518), FRAC_CONST(-0.7705131769)}, {FRAC_CONST(-1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(-0.3446428776), FRAC_CONST(-0.9387338758)}},
    {{FRAC_CONST(-0.9048270583), FRAC_CONST(0.4257792532)}, {FRAC_CONST(-0.0000000000), FRAC_CONST(-1.0000000000)}, {FRAC_CONST(-0.5724321604), FRAC_CONST(0.8199520707)}},
    {{FRAC_CONST(-0.6129069924), FRAC_CONST(-0.7901550531)}, {FRAC_CONST(0.7071067691), FRAC_CONST(0.7071067691)}, {FRAC_CONST(-0.9917160273), FRAC_CONST(-0.1284494549)}},
    {{FRAC_CONST(-0.6129069924), FRAC_CONST(-0.7901550531)}, {FRAC_CONST(0.7071067691), FRAC_CONST(0.7071067691)}, {FRAC_CONST(-0.9917160273), FRAC_CONST(-0.1284494549)}},
    {{FRAC_CONST(0.6374240518), FRAC_CONST(-0.7705131769)}, {FRAC_CONST(-1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(-0.3446428776), FRAC_CONST(-0.9387338758)}},
    {{FRAC_CONST(0.6374240518), FRAC_CONST(-0.7705131769)}, {FRAC_CONST(-1.0000000000), FRAC_CONST(0.0000000000)}, {FRAC_CONST(-0.3446428776), FRAC_CONST(-0.9387338758)}},
    {{FRAC_CONST(0.8910064697), FRAC_CONST(0.4539906085)}, {FRAC_CONST(0.7071067691), FRAC_CONST(-0.7071067691)}, {FRAC_CONST(0.6730125546), FRAC_CONST(-0.7396310568)}},
    {{FRAC_CONST(-0.6129069924), FRAC_CONST(-0.7901550531)}, {FRAC_CONST(0.7071067691), FRAC_CONST(0.7071067691)}, {FRAC_CONST(-0.9917160273), FRAC_CONST(-0.1284494549)}}};

 const int32_t cos_alphas[] = {COEF_CONST(1.0000000000), COEF_CONST(0.9841239700), COEF_CONST(0.9594738210), COEF_CONST(0.8946843079),
                                     COEF_CONST(0.8269340931), COEF_CONST(0.7071067812), COEF_CONST(0.4533210856), COEF_CONST(0.0000000000)};

 const int32_t sin_alphas[] = {COEF_CONST(0.0000000000), COEF_CONST(0.1774824264), COEF_CONST(0.2817977763), COEF_CONST(0.4466989918),
                                     COEF_CONST(0.5622988580), COEF_CONST(0.7071067812), COEF_CONST(0.8913472911), COEF_CONST(1.0000000000)};

 const int32_t cos_betas_normal[][8] = {{COEF_CONST(1.0000000000), COEF_CONST(1.0000000000), COEF_CONST(1.0000000000), COEF_CONST(1.0000000000), COEF_CONST(1.0000000000),
                                               COEF_CONST(1.0000000000), COEF_CONST(1.0000000000), COEF_CONST(1.0000000000)},
                                              {COEF_CONST(1.0000000000), COEF_CONST(0.9995871699), COEF_CONST(0.9989419133), COEF_CONST(0.9972204583), COEF_CONST(0.9953790839),
                                               COEF_CONST(0.9920112747), COEF_CONST(0.9843408180), COEF_CONST(0.9681727381)},
                                              {COEF_CONST(1.0000000000), COEF_CONST(0.9984497744), COEF_CONST(0.9960279377), COEF_CONST(0.9895738413), COEF_CONST(0.9826814632),
                                               COEF_CONST(0.9701058164), COEF_CONST(0.9416098832), COEF_CONST(0.8822105900)},
                                              {COEF_CONST(1.0000000000), COEF_CONST(0.9959398908), COEF_CONST(0.9896038018), COEF_CONST(0.9727589768), COEF_CONST(0.9548355329),
                                               COEF_CONST(0.9223070404), COEF_CONST(0.8494349490), COEF_CONST(0.7013005535)},
                                              {COEF_CONST(1.0000000000), COEF_CONST(0.9932417400), COEF_CONST(0.9827071856), COEF_CONST(0.9547730996), COEF_CONST(0.9251668930),
                                               COEF_CONST(0.8717461589), COEF_CONST(0.7535520592), COEF_CONST(0.5198827312)},
                                              {COEF_CONST(1.0000000000), COEF_CONST(0.9902068095), COEF_CONST(0.9749613872), COEF_CONST(0.9346538534), COEF_CONST(0.8921231300),
                                               COEF_CONST(0.8158851259), COEF_CONST(0.6495964302), COEF_CONST(0.3313370772)},
                                              {COEF_CONST(1.0000000000), COEF_CONST(0.9880510933), COEF_CONST(0.9694670261), COEF_CONST(0.9204347876), COEF_CONST(0.8688622825),
                                               COEF_CONST(0.7768516704), COEF_CONST(0.5782161800), COEF_CONST(0.2069970356)},
                                              {COEF_CONST(1.0000000000), COEF_CONST(0.9858996945), COEF_CONST(0.9639898866), COEF_CONST(0.9063034786), COEF_CONST(0.8458214608),
                                               COEF_CONST(0.7384262300), COEF_CONST(0.5089811277), COEF_CONST(0.0905465944)}};

 const int32_t sin_betas_normal[][8] = {{COEF_CONST(0.0000000000), COEF_CONST(0.0000000000), COEF_CONST(0.0000000000), COEF_CONST(0.0000000000), COEF_CONST(0.0000000000),
                                               COEF_CONST(0.0000000000), COEF_CONST(0.0000000000), COEF_CONST(0.0000000000)},
                                              {COEF_CONST(0.0000000000), COEF_CONST(-0.0287313368), COEF_CONST(-0.0459897147), COEF_CONST(-0.0745074328), COEF_CONST(-0.0960233266),
                                               COEF_CONST(-0.1261492408), COEF_CONST(-0.1762757894), COEF_CONST(-0.2502829383)},
                                              {COEF_CONST(0.0000000000), COEF_CONST(-0.0556601118), COEF_CONST(-0.0890412670), COEF_CONST(-0.1440264301), COEF_CONST(-0.1853028382),
                                               COEF_CONST(-0.2426823129), COEF_CONST(-0.3367058477), COEF_CONST(-0.4708550466)},
                                              {COEF_CONST(0.0000000000), COEF_CONST(-0.0900207420), COEF_CONST(-0.1438204281), COEF_CONST(-0.2318188366), COEF_CONST(-0.2971348264),
                                               COEF_CONST(-0.3864579191), COEF_CONST(-0.5276933461), COEF_CONST(-0.7128657193)},
                                              {COEF_CONST(0.0000000000), COEF_CONST(-0.1160639735), COEF_CONST(-0.1851663774), COEF_CONST(-0.2973353800), COEF_CONST(-0.3795605619),
                                               COEF_CONST(-0.4899577884), COEF_CONST(-0.6573882369), COEF_CONST(-0.8542376401)},
                                              {COEF_CONST(0.0000000000), COEF_CONST(-0.1396082894), COEF_CONST(-0.2223742196), COEF_CONST(-0.3555589603), COEF_CONST(-0.4517923427),
                                               COEF_CONST(-0.5782140273), COEF_CONST(-0.7602792104), COEF_CONST(-0.9435124489)},
                                              {COEF_CONST(0.0000000000), COEF_CONST(-0.1541266914), COEF_CONST(-0.2452217065), COEF_CONST(-0.3908961522), COEF_CONST(-0.4950538699),
                                               COEF_CONST(-0.6296836366), COEF_CONST(-0.8158836002), COEF_CONST(-0.9783415698)},
                                              {COEF_CONST(0.0000000000), COEF_CONST(-0.1673373610), COEF_CONST(-0.2659389001), COEF_CONST(-0.4226275012), COEF_CONST(-0.5334660781),
                                               COEF_CONST(-0.6743342664), COEF_CONST(-0.8607776784), COEF_CONST(-0.9958922202)}};

 const int32_t cos_betas_fine[][8] = {{COEF_CONST(1.0000000000), COEF_CONST(1.0000000000), COEF_CONST(1.0000000000), COEF_CONST(1.0000000000), COEF_CONST(1.0000000000), COEF_CONST(1.0000000000),
                                             COEF_CONST(1.0000000000), COEF_CONST(1.0000000000)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9995871699), COEF_CONST(0.9989419133), COEF_CONST(0.9972204583), COEF_CONST(0.9953790839), COEF_CONST(0.9920112747),
                                             COEF_CONST(0.9843408180), COEF_CONST(0.9681727381)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9984497744), COEF_CONST(0.9960279377), COEF_CONST(0.9895738413), COEF_CONST(0.9826814632), COEF_CONST(0.9701058164),
                                             COEF_CONST(0.9416098832), COEF_CONST(0.8822105900)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9968361371), COEF_CONST(0.9918968104), COEF_CONST(0.9787540479), COEF_CONST(0.9647515190), COEF_CONST(0.9392903010),
                                             COEF_CONST(0.8820167114), COEF_CONST(0.7645325390)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9950262915), COEF_CONST(0.9872675041), COEF_CONST(0.9666584578), COEF_CONST(0.9447588606), COEF_CONST(0.9050918405),
                                             COEF_CONST(0.8165997379), COEF_CONST(0.6383824796)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9932417400), COEF_CONST(0.9827071856), COEF_CONST(0.9547730996), COEF_CONST(0.9251668930), COEF_CONST(0.8717461589),
                                             COEF_CONST(0.7535520592), COEF_CONST(0.5198827312)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9908827998), COEF_CONST(0.9766855904), COEF_CONST(0.9391249214), COEF_CONST(0.8994531782), COEF_CONST(0.8282352693),
                                             COEF_CONST(0.6723983174), COEF_CONST(0.3719473225)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9890240165), COEF_CONST(0.9719459866), COEF_CONST(0.9268448110), COEF_CONST(0.8793388536), COEF_CONST(0.7944023271),
                                             COEF_CONST(0.6101812098), COEF_CONST(0.2621501145)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9876350461), COEF_CONST(0.9684073447), COEF_CONST(0.9176973944), COEF_CONST(0.8643930070), COEF_CONST(0.7693796058),
                                             COEF_CONST(0.5646720713), COEF_CONST(0.1838899556)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9866247085), COEF_CONST(0.9658349704), COEF_CONST(0.9110590761), COEF_CONST(0.8535668048), COEF_CONST(0.7513165426),
                                             COEF_CONST(0.5320914819), COEF_CONST(0.1289530943)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9858996945), COEF_CONST(0.9639898866), COEF_CONST(0.9063034786), COEF_CONST(0.8458214608), COEF_CONST(0.7384262300),
                                             COEF_CONST(0.5089811277), COEF_CONST(0.0905465944)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9851245614), COEF_CONST(0.9620180268), COEF_CONST(0.9012265590), COEF_CONST(0.8375623272), COEF_CONST(0.7247108045),
                                             COEF_CONST(0.4845204297), COEF_CONST(0.0504115003)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9846869856), COEF_CONST(0.9609052357), COEF_CONST(0.8983639533), COEF_CONST(0.8329098386), COEF_CONST(0.7169983441),
                                             COEF_CONST(0.4708245354), COEF_CONST(0.0281732509)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9844406325), COEF_CONST(0.9602788522), COEF_CONST(0.8967533934), COEF_CONST(0.8302936455), COEF_CONST(0.7126658102),
                                             COEF_CONST(0.4631492839), COEF_CONST(0.0157851140)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9843020502), COEF_CONST(0.9599265269), COEF_CONST(0.8958477331), COEF_CONST(0.8288229094), COEF_CONST(0.7102315840),
                                             COEF_CONST(0.4588429315), COEF_CONST(0.0088578059)},
                                            {COEF_CONST(1.0000000000), COEF_CONST(0.9842241136), COEF_CONST(0.9597283916), COEF_CONST(0.8953385094), COEF_CONST(0.8279961409), COEF_CONST(0.7088635748),
                                             COEF_CONST(0.4564246834), COEF_CONST(0.0049751355)}};

 const int32_t sin_betas_fine[][8] = {{COEF_CONST(0.0000000000), COEF_CONST(0.0000000000), COEF_CONST(0.0000000000), COEF_CONST(0.0000000000), COEF_CONST(0.0000000000), COEF_CONST(0.0000000000),
                                             COEF_CONST(0.0000000000), COEF_CONST(0.0000000000)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.0287313368), COEF_CONST(-0.0459897147), COEF_CONST(-0.0745074328), COEF_CONST(-0.0960233266),
                                             COEF_CONST(-0.1261492408), COEF_CONST(-0.1762757894), COEF_CONST(-0.2502829383)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.0556601118), COEF_CONST(-0.0890412670), COEF_CONST(-0.1440264301), COEF_CONST(-0.1853028382),
                                             COEF_CONST(-0.2426823129), COEF_CONST(-0.3367058477), COEF_CONST(-0.4708550466)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.0794840594), COEF_CONST(-0.1270461238), COEF_CONST(-0.2050378347), COEF_CONST(-0.2631625097),
                                             COEF_CONST(-0.3431234916), COEF_CONST(-0.4712181245), COEF_CONST(-0.6445851354)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.0996126459), COEF_CONST(-0.1590687758), COEF_CONST(-0.2560691819), COEF_CONST(-0.3277662204),
                                             COEF_CONST(-0.4252161335), COEF_CONST(-0.5772043556), COEF_CONST(-0.7697193058)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.1160639735), COEF_CONST(-0.1851663774), COEF_CONST(-0.2973353800), COEF_CONST(-0.3795605619),
                                             COEF_CONST(-0.4899577884), COEF_CONST(-0.6573882369), COEF_CONST(-0.8542376401)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.1347266752), COEF_CONST(-0.2146747714), COEF_CONST(-0.3435758752), COEF_CONST(-0.4370171396),
                                             COEF_CONST(-0.5603805303), COEF_CONST(-0.7401895046), COEF_CONST(-0.9282538388)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.1477548470), COEF_CONST(-0.2352041647), COEF_CONST(-0.3754446647), COEF_CONST(-0.4761965776),
                                             COEF_CONST(-0.6073919186), COEF_CONST(-0.7922618830), COEF_CONST(-0.9650271071)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.1567705832), COEF_CONST(-0.2493736450), COEF_CONST(-0.3972801182), COEF_CONST(-0.5028167951),
                                             COEF_CONST(-0.6387918458), COEF_CONST(-0.8253153651), COEF_CONST(-0.9829468369)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.1630082348), COEF_CONST(-0.2591578860), COEF_CONST(-0.4122758299), COEF_CONST(-0.5209834064),
                                             COEF_CONST(-0.6599420072), COEF_CONST(-0.8466868694), COEF_CONST(-0.9916506943)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.1673373610), COEF_CONST(-0.2659389001), COEF_CONST(-0.4226275012), COEF_CONST(-0.5334660781),
                                             COEF_CONST(-0.6743342664), COEF_CONST(-0.8607776784), COEF_CONST(-0.9958922202)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.1718417832), COEF_CONST(-0.2729859267), COEF_CONST(-0.4333482310), COEF_CONST(-0.5463417868),
                                             COEF_CONST(-0.6890531546), COEF_CONST(-0.8747799456), COEF_CONST(-0.9987285320)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.1743316967), COEF_CONST(-0.2768774604), COEF_CONST(-0.4392518725), COEF_CONST(-0.5534087104),
                                             COEF_CONST(-0.6970748701), COEF_CONST(-0.8822268738), COEF_CONST(-0.9996030552)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.1757175038), COEF_CONST(-0.2790421580), COEF_CONST(-0.4425306221), COEF_CONST(-0.5573261722),
                                             COEF_CONST(-0.7015037013), COEF_CONST(-0.8862802834), COEF_CONST(-0.9998754073)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.1764921355), COEF_CONST(-0.2802517850), COEF_CONST(-0.4443611583), COEF_CONST(-0.5595110229),
                                             COEF_CONST(-0.7039681080), COEF_CONST(-0.8885173967), COEF_CONST(-0.9999607689)},
                                            {COEF_CONST(0.0000000000), COEF_CONST(-0.1769262394), COEF_CONST(-0.2809295540), COEF_CONST(-0.4453862969), COEF_CONST(-0.5607337966),
                                             COEF_CONST(-0.7053456119), COEF_CONST(-0.8897620516), COEF_CONST(-0.9999876239)}};

 const int32_t sincos_alphas_B_normal[][8] = {{COEF_CONST(0.0561454100), COEF_CONST(0.0526385859), COEF_CONST(0.0472937334), COEF_CONST(0.0338410641), COEF_CONST(0.0207261065),
                                                     COEF_CONST(0.0028205635), COEF_CONST(0.0028205635), COEF_CONST(0.0028205635)},
                                                    {COEF_CONST(0.1249065138), COEF_CONST(0.1173697697), COEF_CONST(0.1057888284), COEF_CONST(0.0761985131), COEF_CONST(0.0468732723),
                                                     COEF_CONST(0.0063956103), COEF_CONST(0.0063956103), COEF_CONST(0.0063956103)},
                                                    {COEF_CONST(0.1956693050), COEF_CONST(0.1846090179), COEF_CONST(0.1673645109), COEF_CONST(0.1220621836), COEF_CONST(0.0757362479),
                                                     COEF_CONST(0.0103882630), COEF_CONST(0.0103882630), COEF_CONST(0.0103882630)},
                                                    {COEF_CONST(0.3015113269), COEF_CONST(0.2870525790), COEF_CONST(0.2637738799), COEF_CONST(0.1984573949), COEF_CONST(0.1260749909),
                                                     COEF_CONST(0.0175600126), COEF_CONST(0.0175600126), COEF_CONST(0.0175600126)},
                                                    {COEF_CONST(0.4078449476), COEF_CONST(0.3929852420), COEF_CONST(0.3680589270), COEF_CONST(0.2911029124), COEF_CONST(0.1934512363),
                                                     COEF_CONST(0.0278686716), COEF_CONST(0.0278686716), COEF_CONST(0.0278686716)},
                                                    {COEF_CONST(0.5336171261), COEF_CONST(0.5226637762), COEF_CONST(0.5033652606), COEF_CONST(0.4349162672), COEF_CONST(0.3224682122),
                                                     COEF_CONST(0.0521999036), COEF_CONST(0.0521999036), COEF_CONST(0.0521999036)},
                                                    {COEF_CONST(0.6219832023), COEF_CONST(0.6161847276), COEF_CONST(0.6057251063), COEF_CONST(0.5654342668), COEF_CONST(0.4826149915),
                                                     COEF_CONST(0.1058044758), COEF_CONST(0.1058044758), COEF_CONST(0.1058044758)},
                                                    {COEF_CONST(0.7071067657), COEF_CONST(0.7071067657), COEF_CONST(0.7071067657), COEF_CONST(0.7071067657), COEF_CONST(0.7071067657),
                                                     COEF_CONST(0.7071067657), COEF_CONST(0.7071067657), COEF_CONST(0.7071067657)},
                                                    {COEF_CONST(0.7830305572), COEF_CONST(0.7876016373), COEF_CONST(0.7956739618), COEF_CONST(0.8247933372), COEF_CONST(0.8758325942),
                                                     COEF_CONST(0.9943869542), COEF_CONST(0.9943869542), COEF_CONST(0.9943869542)},
                                                    {COEF_CONST(0.8457261833), COEF_CONST(0.8525388778), COEF_CONST(0.8640737401), COEF_CONST(0.9004708933), COEF_CONST(0.9465802987),
                                                     COEF_CONST(0.9986366532), COEF_CONST(0.9986366532), COEF_CONST(0.9986366532)},
                                                    {COEF_CONST(0.9130511848), COEF_CONST(0.9195447612), COEF_CONST(0.9298024282), COEF_CONST(0.9566917233), COEF_CONST(0.9811098801),
                                                     COEF_CONST(0.9996115928), COEF_CONST(0.9996115928), COEF_CONST(0.9996115928)},
                                                    {COEF_CONST(0.9534625907), COEF_CONST(0.9579148236), COEF_CONST(0.9645845234), COEF_CONST(0.9801095128), COEF_CONST(0.9920207064),
                                                     COEF_CONST(0.9998458099), COEF_CONST(0.9998458099), COEF_CONST(0.9998458099)},
                                                    {COEF_CONST(0.9806699215), COEF_CONST(0.9828120260), COEF_CONST(0.9858950861), COEF_CONST(0.9925224431), COEF_CONST(0.9971278825),
                                                     COEF_CONST(0.9999460406), COEF_CONST(0.9999460406), COEF_CONST(0.9999460406)},
                                                    {COEF_CONST(0.9921685024), COEF_CONST(0.9930882705), COEF_CONST(0.9943886135), COEF_CONST(0.9970926648), COEF_CONST(0.9989008403),
                                                     COEF_CONST(0.9999795479), COEF_CONST(0.9999795479), COEF_CONST(0.9999795479)},
                                                    {COEF_CONST(0.9984226014), COEF_CONST(0.9986136287), COEF_CONST(0.9988810254), COEF_CONST(0.9994272242), COEF_CONST(0.9997851906),
                                                     COEF_CONST(0.9999960221), COEF_CONST(0.9999960221), COEF_CONST(0.9999960221)}};

 const int32_t sincos_alphas_B_fine[][8] = {{COEF_CONST(0.0031622158), COEF_CONST(0.0029630181), COEF_CONST(0.0026599892), COEF_CONST(0.0019002704), COEF_CONST(0.0011626042),
                                                   COEF_CONST(0.0001580278), COEF_CONST(0.0001580278), COEF_CONST(0.0001580278)},
                                                  {COEF_CONST(0.0056232673), COEF_CONST(0.0052689825), COEF_CONST(0.0047302825), COEF_CONST(0.0033791756), COEF_CONST(0.0020674015),
                                                   COEF_CONST(0.0002811710), COEF_CONST(0.0002811710), COEF_CONST(0.0002811710)},
                                                  {COEF_CONST(0.0099994225), COEF_CONST(0.0093696693), COEF_CONST(0.0084117414), COEF_CONST(0.0060093796), COEF_CONST(0.0036766009),
                                                   COEF_CONST(0.0005000392), COEF_CONST(0.0005000392), COEF_CONST(0.0005000392)},
                                                  {COEF_CONST(0.0177799194), COEF_CONST(0.0166607102), COEF_CONST(0.0149581377), COEF_CONST(0.0106875809), COEF_CONST(0.0065392545),
                                                   COEF_CONST(0.0008893767), COEF_CONST(0.0008893767), COEF_CONST(0.0008893767)},
                                                  {COEF_CONST(0.0316069684), COEF_CONST(0.0296211579), COEF_CONST(0.0265987295), COEF_CONST(0.0190113813), COEF_CONST(0.0116349973),
                                                   COEF_CONST(0.0015826974), COEF_CONST(0.0015826974), COEF_CONST(0.0015826974)},
                                                  {COEF_CONST(0.0561454100), COEF_CONST(0.0526385859), COEF_CONST(0.0472937334), COEF_CONST(0.0338410641), COEF_CONST(0.0207261065),
                                                   COEF_CONST(0.0028205635), COEF_CONST(0.0028205635), COEF_CONST(0.0028205635)},
                                                  {COEF_CONST(0.0791834041), COEF_CONST(0.0742798103), COEF_CONST(0.0667907269), COEF_CONST(0.0478705292), COEF_CONST(0.0293500747),
                                                   COEF_CONST(0.0039966755), COEF_CONST(0.0039966755), COEF_CONST(0.0039966755)},
                                                  {COEF_CONST(0.1115021177), COEF_CONST(0.1047141985), COEF_CONST(0.0943053154), COEF_CONST(0.0678120561), COEF_CONST(0.0416669150),
                                                   COEF_CONST(0.0056813213), COEF_CONST(0.0056813213), COEF_CONST(0.0056813213)},
                                                  {COEF_CONST(0.1565355066), COEF_CONST(0.1473258371), COEF_CONST(0.1330924027), COEF_CONST(0.0963282233), COEF_CONST(0.0594509113),
                                                   COEF_CONST(0.0081277946), COEF_CONST(0.0081277946), COEF_CONST(0.0081277946)},
                                                  {COEF_CONST(0.2184643682), COEF_CONST(0.2064579524), COEF_CONST(0.1876265439), COEF_CONST(0.1375744167), COEF_CONST(0.0856896681),
                                                   COEF_CONST(0.0117817338), COEF_CONST(0.0117817338), COEF_CONST(0.0117817338)},
                                                  {COEF_CONST(0.3015113269), COEF_CONST(0.2870525790), COEF_CONST(0.2637738799), COEF_CONST(0.1984573949), COEF_CONST(0.1260749909),
                                                   COEF_CONST(0.0175600126), COEF_CONST(0.0175600126), COEF_CONST(0.0175600126)},
                                                  {COEF_CONST(0.3698741335), COEF_CONST(0.3547727297), COEF_CONST(0.3298252076), COEF_CONST(0.2556265829), COEF_CONST(0.1665990017),
                                                   COEF_CONST(0.0236344541), COEF_CONST(0.0236344541), COEF_CONST(0.0236344541)},
                                                  {COEF_CONST(0.4480623975), COEF_CONST(0.4339410024), COEF_CONST(0.4098613774), COEF_CONST(0.3322709108), COEF_CONST(0.2266784729),
                                                   COEF_CONST(0.0334094131), COEF_CONST(0.0334094131), COEF_CONST(0.0334094131)},
                                                  {COEF_CONST(0.5336171261), COEF_CONST(0.5226637762), COEF_CONST(0.5033652606), COEF_CONST(0.4349162672), COEF_CONST(0.3224682122),
                                                   COEF_CONST(0.0521999036), COEF_CONST(0.0521999036), COEF_CONST(0.0521999036)},
                                                  {COEF_CONST(0.6219832023), COEF_CONST(0.6161847276), COEF_CONST(0.6057251063), COEF_CONST(0.5654342668), COEF_CONST(0.4826149915),
                                                   COEF_CONST(0.1058044758), COEF_CONST(0.1058044758), COEF_CONST(0.1058044758)},
                                                  {COEF_CONST(0.7071067657), COEF_CONST(0.7071067657), COEF_CONST(0.7071067657), COEF_CONST(0.7071067657), COEF_CONST(0.7071067657),
                                                   COEF_CONST(0.7071067657), COEF_CONST(0.7071067657), COEF_CONST(0.7071067657)},
                                                  {COEF_CONST(0.7830305572), COEF_CONST(0.7876016373), COEF_CONST(0.7956739618), COEF_CONST(0.8247933372), COEF_CONST(0.8758325942),
                                                   COEF_CONST(0.9943869542), COEF_CONST(0.9943869542), COEF_CONST(0.9943869542)},
                                                  {COEF_CONST(0.8457261833), COEF_CONST(0.8525388778), COEF_CONST(0.8640737401), COEF_CONST(0.9004708933), COEF_CONST(0.9465802987),
                                                   COEF_CONST(0.9986366532), COEF_CONST(0.9986366532), COEF_CONST(0.9986366532)},
                                                  {COEF_CONST(0.8940022267), COEF_CONST(0.9009412572), COEF_CONST(0.9121477564), COEF_CONST(0.9431839770), COEF_CONST(0.9739696219),
                                                   COEF_CONST(0.9994417480), COEF_CONST(0.9994417480), COEF_CONST(0.9994417480)},
                                                  {COEF_CONST(0.9290818561), COEF_CONST(0.9349525662), COEF_CONST(0.9440420138), COEF_CONST(0.9667755833), COEF_CONST(0.9860247275),
                                                   COEF_CONST(0.9997206664), COEF_CONST(0.9997206664), COEF_CONST(0.9997206664)},
                                                  {COEF_CONST(0.9534625907), COEF_CONST(0.9579148236), COEF_CONST(0.9645845234), COEF_CONST(0.9801095128), COEF_CONST(0.9920207064),
                                                   COEF_CONST(0.9998458099), COEF_CONST(0.9998458099), COEF_CONST(0.9998458099)},
                                                  {COEF_CONST(0.9758449068), COEF_CONST(0.9784554646), COEF_CONST(0.9822404252), COEF_CONST(0.9904914275), COEF_CONST(0.9963218730),
                                                   COEF_CONST(0.9999305926), COEF_CONST(0.9999305926), COEF_CONST(0.9999305926)},
                                                  {COEF_CONST(0.9876723320), COEF_CONST(0.9890880155), COEF_CONST(0.9911036356), COEF_CONST(0.9953496173), COEF_CONST(0.9982312259),
                                                   COEF_CONST(0.9999669685), COEF_CONST(0.9999669685), COEF_CONST(0.9999669685)},
                                                  {COEF_CONST(0.9937641889), COEF_CONST(0.9945023501), COEF_CONST(0.9955433130), COEF_CONST(0.9976981117), COEF_CONST(0.9991315558),
                                                   COEF_CONST(0.9999838610), COEF_CONST(0.9999838610), COEF_CONST(0.9999838610)},
                                                  {COEF_CONST(0.9968600642), COEF_CONST(0.9972374385), COEF_CONST(0.9977670024), COEF_CONST(0.9988535464), COEF_CONST(0.9995691924),
                                                   COEF_CONST(0.9999920129), COEF_CONST(0.9999920129), COEF_CONST(0.9999920129)},
                                                  {COEF_CONST(0.9984226014), COEF_CONST(0.9986136287), COEF_CONST(0.9988810254), COEF_CONST(0.9994272242), COEF_CONST(0.9997851906),
                                                   COEF_CONST(0.9999960221), COEF_CONST(0.9999960221), COEF_CONST(0.9999960221)},
                                                  {COEF_CONST(0.9995003746), COEF_CONST(0.9995611974), COEF_CONST(0.9996461891), COEF_CONST(0.9998192657), COEF_CONST(0.9999323103),
                                                   COEF_CONST(0.9999987475), COEF_CONST(0.9999987475), COEF_CONST(0.9999987475)},
                                                  {COEF_CONST(0.9998419236), COEF_CONST(0.9998611991), COEF_CONST(0.9998881193), COEF_CONST(0.9999428861), COEF_CONST(0.9999786185),
                                                   COEF_CONST(0.9999996045), COEF_CONST(0.9999996045), COEF_CONST(0.9999996045)},
                                                  {COEF_CONST(0.9999500038), COEF_CONST(0.9999561034), COEF_CONST(0.9999646206), COEF_CONST(0.9999819429), COEF_CONST(0.9999932409),
                                                   COEF_CONST(0.9999998750), COEF_CONST(0.9999998750), COEF_CONST(0.9999998750)},
                                                  {COEF_CONST(0.9999841890), COEF_CONST(0.9999861183), COEF_CONST(0.9999888121), COEF_CONST(0.9999942902), COEF_CONST(0.9999978628),
                                                   COEF_CONST(0.9999999605), COEF_CONST(0.9999999605), COEF_CONST(0.9999999605)},
                                                  {COEF_CONST(0.9999950000), COEF_CONST(0.9999956102), COEF_CONST(0.9999964621), COEF_CONST(0.9999981945), COEF_CONST(0.9999993242),
                                                   COEF_CONST(0.9999999875), COEF_CONST(0.9999999875), COEF_CONST(0.9999999875)}};

 const int32_t cos_gammas_normal[][8] = {{COEF_CONST(1.0000000000), COEF_CONST(0.9841239707), COEF_CONST(0.9594738226), COEF_CONST(0.8946843024), COEF_CONST(0.8269341029),
                                                COEF_CONST(0.7245688486), COEF_CONST(0.7245688486), COEF_CONST(0.7245688486)},
                                               {COEF_CONST(1.0000000000), COEF_CONST(0.9849690570), COEF_CONST(0.9617776789), COEF_CONST(0.9020941550), COEF_CONST(0.8436830391),
                                                COEF_CONST(0.7846832804), COEF_CONST(0.7846832804), COEF_CONST(0.7846832804)},
                                               {COEF_CONST(1.0000000000), COEF_CONST(0.9871656089), COEF_CONST(0.9676774734), COEF_CONST(0.9199102884), COEF_CONST(0.8785067015),
                                                COEF_CONST(0.8464232214), COEF_CONST(0.8464232214), COEF_CONST(0.8464232214)},
                                               {COEF_CONST(1.0000000000), COEF_CONST(0.9913533967), COEF_CONST(0.9786000177), COEF_CONST(0.9496063381), COEF_CONST(0.9277157252),
                                                COEF_CONST(0.9133354077), COEF_CONST(0.9133354077), COEF_CONST(0.9133354077)},
                                               {COEF_CONST(1.0000000000), COEF_CONST(0.9948924435), COEF_CONST(0.9875319180), COEF_CONST(0.9716329849), COEF_CONST(0.9604805241),
                                                COEF_CONST(0.9535949574), COEF_CONST(0.9535949574), COEF_CONST(0.9535949574)},
                                               {COEF_CONST(1.0000000000), COEF_CONST(0.9977406278), COEF_CONST(0.9945423840), COEF_CONST(0.9878736667), COEF_CONST(0.9833980494),
                                                COEF_CONST(0.9807207440), COEF_CONST(0.9807207440), COEF_CONST(0.9807207440)},
                                               {COEF_CONST(1.0000000000), COEF_CONST(0.9990607067), COEF_CONST(0.9977417734), COEF_CONST(0.9950323970), COEF_CONST(0.9932453273),
                                                COEF_CONST(0.9921884740), COEF_CONST(0.9921884740), COEF_CONST(0.9921884740)},
                                               {COEF_CONST(1.0000000000), COEF_CONST(0.9998081748), COEF_CONST(0.9995400312), COEF_CONST(0.9989936459), COEF_CONST(0.9986365356),
                                                COEF_CONST(0.9984265591), COEF_CONST(0.9984265591), COEF_CONST(0.9984265591)}};

 const int32_t cos_gammas_fine[][8] = {{COEF_CONST(1.0000000000), COEF_CONST(0.9841239707), COEF_CONST(0.9594738226), COEF_CONST(0.8946843024), COEF_CONST(0.8269341029),
                                              COEF_CONST(0.7245688486), COEF_CONST(0.7245688486), COEF_CONST(0.7245688486)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9849690570), COEF_CONST(0.9617776789), COEF_CONST(0.9020941550), COEF_CONST(0.8436830391),
                                              COEF_CONST(0.7846832804), COEF_CONST(0.7846832804), COEF_CONST(0.7846832804)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9871656089), COEF_CONST(0.9676774734), COEF_CONST(0.9199102884), COEF_CONST(0.8785067015),
                                              COEF_CONST(0.8464232214), COEF_CONST(0.8464232214), COEF_CONST(0.8464232214)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9899597309), COEF_CONST(0.9750098690), COEF_CONST(0.9402333855), COEF_CONST(0.9129698759),
                                              COEF_CONST(0.8943765944), COEF_CONST(0.8943765944), COEF_CONST(0.8943765944)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9926607607), COEF_CONST(0.9819295710), COEF_CONST(0.9580160104), COEF_CONST(0.9404993670),
                                              COEF_CONST(0.9293004472), COEF_CONST(0.9293004472), COEF_CONST(0.9293004472)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9948924435), COEF_CONST(0.9875319180), COEF_CONST(0.9716329849), COEF_CONST(0.9604805241),
                                              COEF_CONST(0.9535949574), COEF_CONST(0.9535949574), COEF_CONST(0.9535949574)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9972074644), COEF_CONST(0.9932414270), COEF_CONST(0.9849197629), COEF_CONST(0.9792926592),
                                              COEF_CONST(0.9759092525), COEF_CONST(0.9759092525), COEF_CONST(0.9759092525)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9985361982), COEF_CONST(0.9964742028), COEF_CONST(0.9922136306), COEF_CONST(0.9893845420),
                                              COEF_CONST(0.9877041371), COEF_CONST(0.9877041371), COEF_CONST(0.9877041371)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9992494366), COEF_CONST(0.9981967170), COEF_CONST(0.9960386625), COEF_CONST(0.9946185834),
                                              COEF_CONST(0.9937800239), COEF_CONST(0.9937800239), COEF_CONST(0.9937800239)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9996194722), COEF_CONST(0.9990869422), COEF_CONST(0.9979996269), COEF_CONST(0.9972873651),
                                              COEF_CONST(0.9968679747), COEF_CONST(0.9968679747), COEF_CONST(0.9968679747)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9998081748), COEF_CONST(0.9995400312), COEF_CONST(0.9989936459), COEF_CONST(0.9986365356),
                                              COEF_CONST(0.9984265591), COEF_CONST(0.9984265591), COEF_CONST(0.9984265591)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9999390971), COEF_CONST(0.9998540271), COEF_CONST(0.9996809352), COEF_CONST(0.9995679735),
                                              COEF_CONST(0.9995016284), COEF_CONST(0.9995016284), COEF_CONST(0.9995016284)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9999807170), COEF_CONST(0.9999537862), COEF_CONST(0.9998990191), COEF_CONST(0.9998632947),
                                              COEF_CONST(0.9998423208), COEF_CONST(0.9998423208), COEF_CONST(0.9998423208)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9999938979), COEF_CONST(0.9999853814), COEF_CONST(0.9999680568), COEF_CONST(0.9999567596),
                                              COEF_CONST(0.9999501270), COEF_CONST(0.9999501270), COEF_CONST(0.9999501270)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9999980703), COEF_CONST(0.9999953731), COEF_CONST(0.9999898968), COEF_CONST(0.9999863277),
                                              COEF_CONST(0.9999842265), COEF_CONST(0.9999842265), COEF_CONST(0.9999842265)},
                                             {COEF_CONST(1.0000000000), COEF_CONST(0.9999993891), COEF_CONST(0.9999985397), COEF_CONST(0.9999968037), COEF_CONST(0.9999956786),
                                              COEF_CONST(0.9999950155), COEF_CONST(0.9999950155), COEF_CONST(0.9999950155)}};

 const int32_t sin_gammas_normal[][8] = {{COEF_CONST(0.0000000000), COEF_CONST(0.1774824223), COEF_CONST(0.2817977711), COEF_CONST(0.4466990028), COEF_CONST(0.5622988435),
                                                COEF_CONST(0.6892024258), COEF_CONST(0.6892024258), COEF_CONST(0.6892024258)},
                                               {COEF_CONST(0.0000000000), COEF_CONST(0.1727308798), COEF_CONST(0.2738315110), COEF_CONST(0.4315392630), COEF_CONST(0.5368416242),
                                                COEF_CONST(0.6198968861), COEF_CONST(0.6198968861), COEF_CONST(0.6198968861)},
                                               {COEF_CONST(0.0000000000), COEF_CONST(0.1596999079), COEF_CONST(0.2521910140), COEF_CONST(0.3921288836), COEF_CONST(0.4777300236),
                                                COEF_CONST(0.5325107795), COEF_CONST(0.5325107795), COEF_CONST(0.5325107795)},
                                               {COEF_CONST(0.0000000000), COEF_CONST(0.1312190642), COEF_CONST(0.2057717310), COEF_CONST(0.3134450552), COEF_CONST(0.3732874674),
                                                COEF_CONST(0.4072080955), COEF_CONST(0.4072080955), COEF_CONST(0.4072080955)},
                                               {COEF_CONST(0.0000000000), COEF_CONST(0.1009407043), COEF_CONST(0.1574189028), COEF_CONST(0.2364938532), COEF_CONST(0.2783471983),
                                                COEF_CONST(0.3010924396), COEF_CONST(0.3010924396), COEF_CONST(0.3010924396)},
                                               {COEF_CONST(0.0000000000), COEF_CONST(0.0671836269), COEF_CONST(0.1043333428), COEF_CONST(0.1552598422), COEF_CONST(0.1814615013),
                                                COEF_CONST(0.1954144885), COEF_CONST(0.1954144885), COEF_CONST(0.1954144885)},
                                               {COEF_CONST(0.0000000000), COEF_CONST(0.0433324862), COEF_CONST(0.0671666110), COEF_CONST(0.0995516398), COEF_CONST(0.1160332699),
                                                COEF_CONST(0.1247478739), COEF_CONST(0.1247478739), COEF_CONST(0.1247478739)},
                                               {COEF_CONST(0.0000000000), COEF_CONST(0.0195860576), COEF_CONST(0.0303269852), COEF_CONST(0.0448519274), COEF_CONST(0.0522022017),
                                                COEF_CONST(0.0560750040), COEF_CONST(0.0560750040), COEF_CONST(0.0560750040)}};

 const int32_t sin_gammas_fine[][8] = {{COEF_CONST(0.0000000000), COEF_CONST(0.1774824223), COEF_CONST(0.2817977711), COEF_CONST(0.4466990028), COEF_CONST(0.5622988435),
                                              COEF_CONST(0.6892024258), COEF_CONST(0.6892024258), COEF_CONST(0.6892024258)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.1727308798), COEF_CONST(0.2738315110), COEF_CONST(0.4315392630), COEF_CONST(0.5368416242),
                                              COEF_CONST(0.6198968861), COEF_CONST(0.6198968861), COEF_CONST(0.6198968861)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.1596999079), COEF_CONST(0.2521910140), COEF_CONST(0.3921288836), COEF_CONST(0.4777300236),
                                              COEF_CONST(0.5325107795), COEF_CONST(0.5325107795), COEF_CONST(0.5325107795)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.1413496768), COEF_CONST(0.2221615526), COEF_CONST(0.3405307340), COEF_CONST(0.4080269669),
                                              COEF_CONST(0.4473147744), COEF_CONST(0.4473147744), COEF_CONST(0.4473147744)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.1209322714), COEF_CONST(0.1892467110), COEF_CONST(0.2867147079), COEF_CONST(0.3397954394),
                                              COEF_CONST(0.3693246252), COEF_CONST(0.3693246252), COEF_CONST(0.3693246252)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.1009407043), COEF_CONST(0.1574189028), COEF_CONST(0.2364938532), COEF_CONST(0.2783471983),
                                              COEF_CONST(0.3010924396), COEF_CONST(0.3010924396), COEF_CONST(0.3010924396)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.0746811420), COEF_CONST(0.1160666523), COEF_CONST(0.1730117353), COEF_CONST(0.2024497161),
                                              COEF_CONST(0.2181768341), COEF_CONST(0.2181768341), COEF_CONST(0.2181768341)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.0540875291), COEF_CONST(0.0838997203), COEF_CONST(0.1245476266), COEF_CONST(0.1453211203),
                                              COEF_CONST(0.1563346972), COEF_CONST(0.1563346972), COEF_CONST(0.1563346972)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.0387371058), COEF_CONST(0.0600276114), COEF_CONST(0.0889212171), COEF_CONST(0.1036044086),
                                              COEF_CONST(0.1113609634), COEF_CONST(0.1113609634), COEF_CONST(0.1113609634)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.0275846110), COEF_CONST(0.0427233177), COEF_CONST(0.0632198125), COEF_CONST(0.0736064637),
                                              COEF_CONST(0.0790837596), COEF_CONST(0.0790837596), COEF_CONST(0.0790837596)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.0195860576), COEF_CONST(0.0303269852), COEF_CONST(0.0448519274), COEF_CONST(0.0522022017),
                                              COEF_CONST(0.0560750040), COEF_CONST(0.0560750040), COEF_CONST(0.0560750040)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.0110363955), COEF_CONST(0.0170857974), COEF_CONST(0.0252592108), COEF_CONST(0.0293916021),
                                              COEF_CONST(0.0315673054), COEF_CONST(0.0315673054), COEF_CONST(0.0315673054)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.0062101284), COEF_CONST(0.0096138203), COEF_CONST(0.0142109649), COEF_CONST(0.0165345659),
                                              COEF_CONST(0.0177576316), COEF_CONST(0.0177576316), COEF_CONST(0.0177576316)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.0034934509), COEF_CONST(0.0054071189), COEF_CONST(0.0079928316), COEF_CONST(0.0092994041),
                                              COEF_CONST(0.0099871631), COEF_CONST(0.0099871631), COEF_CONST(0.0099871631)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.0019645397), COEF_CONST(0.0030419905), COEF_CONST(0.0044951511), COEF_CONST(0.0052291853),
                                              COEF_CONST(0.0056166498), COEF_CONST(0.0056166498), COEF_CONST(0.0056166498)},
                                             {COEF_CONST(0.0000000000), COEF_CONST(0.0011053943), COEF_CONST(0.0017089869), COEF_CONST(0.0025283670), COEF_CONST(0.0029398552),
                                              COEF_CONST(0.0031573685), COEF_CONST(0.0031573685), COEF_CONST(0.0031573685)}};

 const int32_t sf_iid_normal[] = {COEF_CONST(1.4119827747), COEF_CONST(1.4031381607), COEF_CONST(1.3868767023), COEF_CONST(1.3483997583), COEF_CONST(1.2912493944),
                                        COEF_CONST(1.1960374117), COEF_CONST(1.1073724031), COEF_CONST(1.0000000000), COEF_CONST(0.8796171546), COEF_CONST(0.7546485662),
                                        COEF_CONST(0.5767799020), COEF_CONST(0.4264014363), COEF_CONST(0.2767182887), COEF_CONST(0.1766446233), COEF_CONST(0.0794016272)};

 const int32_t sf_iid_fine[] = {COEF_CONST(1.4142065048), COEF_CONST(1.4141912460), COEF_CONST(1.4141428471), COEF_CONST(1.4139900208), COEF_CONST(1.4135069847), COEF_CONST(1.4119827747),
                                      COEF_CONST(1.4097729921), COEF_CONST(1.4053947926), COEF_CONST(1.3967796564), COEF_CONST(1.3800530434), COEF_CONST(1.3483997583), COEF_CONST(1.3139201403),
                                      COEF_CONST(1.2643101215), COEF_CONST(1.1960374117), COEF_CONST(1.1073724031), COEF_CONST(1.0000000000), COEF_CONST(0.8796171546), COEF_CONST(0.7546485662),
                                      COEF_CONST(0.6336560845), COEF_CONST(0.5230810642), COEF_CONST(0.4264014363), COEF_CONST(0.3089554012), COEF_CONST(0.2213746458), COEF_CONST(0.1576878875),
                                      COEF_CONST(0.1119822487), COEF_CONST(0.0794016272), COEF_CONST(0.0446990170), COEF_CONST(0.0251446925), COEF_CONST(0.0141414283), COEF_CONST(0.0079525812),
                                      COEF_CONST(0.0044721137)};

 const int32_t codebook[8] = {REAL_CONST(0.570829), REAL_CONST(0.696616), REAL_CONST(0.813004), REAL_CONST(0.911304),
                                    REAL_CONST(0.984900), REAL_CONST(1.067894), REAL_CONST(1.194601), REAL_CONST(1.369533)};

/* 256 (N/4) complex twiddle factors */
 const complex_t mdct_tab_2048[] = {
    {FRAC_CONST(0.999999926465718), FRAC_CONST(0.000383495187571)}, {FRAC_CONST(0.999994043728986), FRAC_CONST(0.003451449920136)}, {FRAC_CONST(0.999978748667469), FRAC_CONST(0.006519372166339)},
    {FRAC_CONST(0.999954041425130), FRAC_CONST(0.009587233049729)}, {FRAC_CONST(0.999919922234523), FRAC_CONST(0.012655003694430)}, {FRAC_CONST(0.999876391416790), FRAC_CONST(0.015722655225417)},
    {FRAC_CONST(0.999823449381662), FRAC_CONST(0.018790158768785)}, {FRAC_CONST(0.999761096627447), FRAC_CONST(0.021857485452022)}, {FRAC_CONST(0.999689333741034), FRAC_CONST(0.024924606404281)},
    {FRAC_CONST(0.999608161397882), FRAC_CONST(0.027991492756653)}, {FRAC_CONST(0.999517580362017), FRAC_CONST(0.031058115642435)}, {FRAC_CONST(0.999417591486022), FRAC_CONST(0.034124446197403)},
    {FRAC_CONST(0.999308195711029), FRAC_CONST(0.037190455560088)}, {FRAC_CONST(0.999189394066715), FRAC_CONST(0.040256114872041)}, {FRAC_CONST(0.999061187671285), FRAC_CONST(0.043321395278110)},
    {FRAC_CONST(0.998923577731466), FRAC_CONST(0.046386267926707)}, {FRAC_CONST(0.998776565542496), FRAC_CONST(0.049450703970085)}, {FRAC_CONST(0.998620152488109), FRAC_CONST(0.052514674564603)},
    {FRAC_CONST(0.998454340040525), FRAC_CONST(0.055578150871005)}, {FRAC_CONST(0.998279129760433), FRAC_CONST(0.058641104054683)}, {FRAC_CONST(0.998094523296980), FRAC_CONST(0.061703505285957)},
    {FRAC_CONST(0.997900522387752), FRAC_CONST(0.064765325740340)}, {FRAC_CONST(0.997697128858759), FRAC_CONST(0.067826536598811)}, {FRAC_CONST(0.997484344624418), FRAC_CONST(0.070887109048088)},
    {FRAC_CONST(0.997262171687536), FRAC_CONST(0.073947014280897)}, {FRAC_CONST(0.997030612139289), FRAC_CONST(0.077006223496246)}, {FRAC_CONST(0.996789668159205), FRAC_CONST(0.080064707899691)},
    {FRAC_CONST(0.996539342015138), FRAC_CONST(0.083122438703613)}, {FRAC_CONST(0.996279636063255), FRAC_CONST(0.086179387127485)}, {FRAC_CONST(0.996010552748006), FRAC_CONST(0.089235524398144)},
    {FRAC_CONST(0.995732094602106), FRAC_CONST(0.092290821750062)}, {FRAC_CONST(0.995444264246510), FRAC_CONST(0.095345250425618)}, {FRAC_CONST(0.995147064390386), FRAC_CONST(0.098398781675364)},
    {FRAC_CONST(0.994840497831093), FRAC_CONST(0.101451386758302)}, {FRAC_CONST(0.994524567454152), FRAC_CONST(0.104503036942151)}, {FRAC_CONST(0.994199276233219), FRAC_CONST(0.107553703503616)},
    {FRAC_CONST(0.993864627230060), FRAC_CONST(0.110603357728662)}, {FRAC_CONST(0.993520623594518), FRAC_CONST(0.113651970912782)}, {FRAC_CONST(0.993167268564487), FRAC_CONST(0.116699514361268)},
    {FRAC_CONST(0.992804565465879), FRAC_CONST(0.119745959389480)}, {FRAC_CONST(0.992432517712594), FRAC_CONST(0.122791277323117)}, {FRAC_CONST(0.992051128806486), FRAC_CONST(0.125835439498487)},
    {FRAC_CONST(0.991660402337333), FRAC_CONST(0.128878417262777)}, {FRAC_CONST(0.991260341982802), FRAC_CONST(0.131920181974320)}, {FRAC_CONST(0.990850951508414), FRAC_CONST(0.134960705002869)},
    {FRAC_CONST(0.990432234767506), FRAC_CONST(0.137999957729863)}, {FRAC_CONST(0.990004195701201), FRAC_CONST(0.141037911548698)}, {FRAC_CONST(0.989566838338365), FRAC_CONST(0.144074537864995)},
    {FRAC_CONST(0.989120166795573), FRAC_CONST(0.147109808096872)}, {FRAC_CONST(0.988664185277066), FRAC_CONST(0.150143693675208)}, {FRAC_CONST(0.988198898074718), FRAC_CONST(0.153176166043918)},
    {FRAC_CONST(0.987724309567987), FRAC_CONST(0.156207196660216)}, {FRAC_CONST(0.987240424223882), FRAC_CONST(0.159236756994888)}, {FRAC_CONST(0.986747246596917), FRAC_CONST(0.162264818532558)},
    {FRAC_CONST(0.986244781329065), FRAC_CONST(0.165291352771958)}, {FRAC_CONST(0.985733033149723), FRAC_CONST(0.168316331226195)}, {FRAC_CONST(0.985212006875659), FRAC_CONST(0.171339725423019)},
    {FRAC_CONST(0.984681707410971), FRAC_CONST(0.174361506905094)}, {FRAC_CONST(0.984142139747039), FRAC_CONST(0.177381647230260)}, {FRAC_CONST(0.983593308962479), FRAC_CONST(0.180400117971807)},
    {FRAC_CONST(0.983035220223096), FRAC_CONST(0.183416890718739)}, {FRAC_CONST(0.982467878781833), FRAC_CONST(0.186431937076042)}, {FRAC_CONST(0.981891289978725), FRAC_CONST(0.189445228664950)},
    {FRAC_CONST(0.981305459240845), FRAC_CONST(0.192456737123217)}, {FRAC_CONST(0.980710392082254), FRAC_CONST(0.195466434105377)}, {FRAC_CONST(0.980106094103952), FRAC_CONST(0.198474291283016)},
    {FRAC_CONST(0.979492570993821), FRAC_CONST(0.201480280345038)}, {FRAC_CONST(0.978869828526574), FRAC_CONST(0.204484372997927)}, {FRAC_CONST(0.978237872563701), FRAC_CONST(0.207486540966021)},
    {FRAC_CONST(0.977596709053412), FRAC_CONST(0.210486755991770)}, {FRAC_CONST(0.976946344030582), FRAC_CONST(0.213484989836008)}, {FRAC_CONST(0.976286783616694), FRAC_CONST(0.216481214278217)},
    {FRAC_CONST(0.975618034019782), FRAC_CONST(0.219475401116790)}, {FRAC_CONST(0.974940101534372), FRAC_CONST(0.222467522169302)}, {FRAC_CONST(0.974252992541423), FRAC_CONST(0.225457549272769)},
    {FRAC_CONST(0.973556713508266), FRAC_CONST(0.228445454283916)}, {FRAC_CONST(0.972851270988544), FRAC_CONST(0.231431209079446)}, {FRAC_CONST(0.972136671622152), FRAC_CONST(0.234414785556295)},
    {FRAC_CONST(0.971412922135171), FRAC_CONST(0.237396155631907)}, {FRAC_CONST(0.970680029339806), FRAC_CONST(0.240375291244489)}, {FRAC_CONST(0.969938000134324), FRAC_CONST(0.243352164353285)},
    {FRAC_CONST(0.969186841502986), FRAC_CONST(0.246326746938829)}, {FRAC_CONST(0.968426560515983), FRAC_CONST(0.249299011003218)}, {FRAC_CONST(0.967657164329370), FRAC_CONST(0.252268928570371)},
    {FRAC_CONST(0.966878660184996), FRAC_CONST(0.255236471686292)}, {FRAC_CONST(0.966091055410439), FRAC_CONST(0.258201612419335)}, {FRAC_CONST(0.965294357418935), FRAC_CONST(0.261164322860466)},
    {FRAC_CONST(0.964488573709308), FRAC_CONST(0.264124575123528)}, {FRAC_CONST(0.963673711865903), FRAC_CONST(0.267082341345496)}, {FRAC_CONST(0.962849779558509), FRAC_CONST(0.270037593686751)},
    {FRAC_CONST(0.962016784542291), FRAC_CONST(0.272990304331330)}, {FRAC_CONST(0.961174734657714), FRAC_CONST(0.275940445487197)}, {FRAC_CONST(0.960323637830474), FRAC_CONST(0.278887989386500)},
    {FRAC_CONST(0.959463502071418), FRAC_CONST(0.281832908285833)}, {FRAC_CONST(0.958594335476470), FRAC_CONST(0.284775174466498)}, {FRAC_CONST(0.957716146226559), FRAC_CONST(0.287714760234765)},
    {FRAC_CONST(0.956828942587535), FRAC_CONST(0.290651637922133)}, {FRAC_CONST(0.955932732910098), FRAC_CONST(0.293585779885591)}, {FRAC_CONST(0.955027525629714), FRAC_CONST(0.296517158507877)},
    {FRAC_CONST(0.954113329266539), FRAC_CONST(0.299445746197740)}, {FRAC_CONST(0.953190152425337), FRAC_CONST(0.302371515390196)}, {FRAC_CONST(0.952258003795400), FRAC_CONST(0.305294438546792)},
    {FRAC_CONST(0.951316892150466), FRAC_CONST(0.308214488155861)}, {FRAC_CONST(0.950366826348636), FRAC_CONST(0.311131636732785)}, {FRAC_CONST(0.949407815332292), FRAC_CONST(0.314045856820251)},
    {FRAC_CONST(0.948439868128010), FRAC_CONST(0.316957120988508)}, {FRAC_CONST(0.947462993846478), FRAC_CONST(0.319865401835631)}, {FRAC_CONST(0.946477201682409), FRAC_CONST(0.322770671987771)},
    {FRAC_CONST(0.945482500914454), FRAC_CONST(0.325672904099420)}, {FRAC_CONST(0.944478900905116), FRAC_CONST(0.328572070853664)}, {FRAC_CONST(0.943466411100659), FRAC_CONST(0.331468144962441)},
    {FRAC_CONST(0.942445041031025), FRAC_CONST(0.334361099166799)}, {FRAC_CONST(0.941414800309736), FRAC_CONST(0.337250906237151)}, {FRAC_CONST(0.940375698633812), FRAC_CONST(0.340137538973532)},
    {FRAC_CONST(0.939327745783671), FRAC_CONST(0.343020970205856)}, {FRAC_CONST(0.938270951623047), FRAC_CONST(0.345901172794169)}, {FRAC_CONST(0.937205326098888), FRAC_CONST(0.348778119628908)},
    {FRAC_CONST(0.936130879241267), FRAC_CONST(0.351651783631155)}, {FRAC_CONST(0.935047621163287), FRAC_CONST(0.354522137752887)}, {FRAC_CONST(0.933955562060987), FRAC_CONST(0.357389154977241)},
    {FRAC_CONST(0.932854712213241), FRAC_CONST(0.360252808318757)}, {FRAC_CONST(0.931745081981669), FRAC_CONST(0.363113070823639)}, {FRAC_CONST(0.930626681810532), FRAC_CONST(0.365969915570009)},
    {FRAC_CONST(0.929499522226639), FRAC_CONST(0.368823315668154)}, {FRAC_CONST(0.928363613839244), FRAC_CONST(0.371673244260787)}, {FRAC_CONST(0.927218967339952), FRAC_CONST(0.374519674523293)},
    {FRAC_CONST(0.926065593502609), FRAC_CONST(0.377362579663988)}, {FRAC_CONST(0.924903503183211), FRAC_CONST(0.380201932924366)}, {FRAC_CONST(0.923732707319793), FRAC_CONST(0.383037707579352)},
    {FRAC_CONST(0.922553216932333), FRAC_CONST(0.385869876937555)}, {FRAC_CONST(0.921365043122642), FRAC_CONST(0.388698414341519)}, {FRAC_CONST(0.920168197074266), FRAC_CONST(0.391523293167972)},
    {FRAC_CONST(0.918962690052376), FRAC_CONST(0.394344486828080)}, {FRAC_CONST(0.917748533403661), FRAC_CONST(0.397161968767692)}, {FRAC_CONST(0.916525738556228), FRAC_CONST(0.399975712467595)},
    {FRAC_CONST(0.915294317019487), FRAC_CONST(0.402785691443764)}, {FRAC_CONST(0.914054280384047), FRAC_CONST(0.405591879247604)}, {FRAC_CONST(0.912805640321604), FRAC_CONST(0.408394249466208)},
    {FRAC_CONST(0.911548408584834), FRAC_CONST(0.411192775722600)}, {FRAC_CONST(0.910282597007282), FRAC_CONST(0.413987431675985)}, {FRAC_CONST(0.909008217503247), FRAC_CONST(0.416778191021998)},
    {FRAC_CONST(0.907725282067676), FRAC_CONST(0.419565027492947)}, {FRAC_CONST(0.906433802776045), FRAC_CONST(0.422347914858067)}, {FRAC_CONST(0.905133791784250), FRAC_CONST(0.425126826923762)},
    {FRAC_CONST(0.903825261328488), FRAC_CONST(0.427901737533854)}, {FRAC_CONST(0.902508223725146), FRAC_CONST(0.430672620569827)}, {FRAC_CONST(0.901182691370685), FRAC_CONST(0.433439449951074)},
    {FRAC_CONST(0.899848676741519), FRAC_CONST(0.436202199635144)}, {FRAC_CONST(0.898506192393902), FRAC_CONST(0.438960843617984)}, {FRAC_CONST(0.897155250963809), FRAC_CONST(0.441715355934187)},
    {FRAC_CONST(0.895795865166814), FRAC_CONST(0.444465710657234)}, {FRAC_CONST(0.894428047797974), FRAC_CONST(0.447211881899738)}, {FRAC_CONST(0.893051811731707), FRAC_CONST(0.449953843813691)},
    {FRAC_CONST(0.891667169921672), FRAC_CONST(0.452691570590701)}, {FRAC_CONST(0.890274135400645), FRAC_CONST(0.455425036462242)}, {FRAC_CONST(0.888872721280396), FRAC_CONST(0.458154215699893)},
    {FRAC_CONST(0.887462940751569), FRAC_CONST(0.460879082615579)}, {FRAC_CONST(0.886044807083556), FRAC_CONST(0.463599611561814)}, {FRAC_CONST(0.884618333624370), FRAC_CONST(0.466315776931944)},
    {FRAC_CONST(0.883183533800523), FRAC_CONST(0.469027553160387)}, {FRAC_CONST(0.881740421116898), FRAC_CONST(0.471734914722871)}, {FRAC_CONST(0.880289009156621), FRAC_CONST(0.474437836136679)},
    {FRAC_CONST(0.878829311580933), FRAC_CONST(0.477136291960885)}, {FRAC_CONST(0.877361342129065), FRAC_CONST(0.479830256796594)}, {FRAC_CONST(0.875885114618104), FRAC_CONST(0.482519705287184)},
    {FRAC_CONST(0.874400642942865), FRAC_CONST(0.485204612118542)}, {FRAC_CONST(0.872907941075761), FRAC_CONST(0.487884952019301)}, {FRAC_CONST(0.871407023066671), FRAC_CONST(0.490560699761082)},
    {FRAC_CONST(0.869897903042806), FRAC_CONST(0.493231830158728)}, {FRAC_CONST(0.868380595208580), FRAC_CONST(0.495898318070542)}, {FRAC_CONST(0.866855113845470), FRAC_CONST(0.498560138398525)},
    {FRAC_CONST(0.865321473311890), FRAC_CONST(0.501217266088610)}, {FRAC_CONST(0.863779688043047), FRAC_CONST(0.503869676130899)}, {FRAC_CONST(0.862229772550811), FRAC_CONST(0.506517343559899)},
    {FRAC_CONST(0.860671741423578), FRAC_CONST(0.509160243454755)}, {FRAC_CONST(0.859105609326130), FRAC_CONST(0.511798350939487)}, {FRAC_CONST(0.857531390999499), FRAC_CONST(0.514431641183223)},
    {FRAC_CONST(0.855949101260827), FRAC_CONST(0.517060089400432)}, {FRAC_CONST(0.854358755003227), FRAC_CONST(0.519683670851158)}, {FRAC_CONST(0.852760367195645), FRAC_CONST(0.522302360841255)},
    {FRAC_CONST(0.851153952882715), FRAC_CONST(0.524916134722613)}, {FRAC_CONST(0.849539527184621), FRAC_CONST(0.527524967893398)}, {FRAC_CONST(0.847917105296951), FRAC_CONST(0.530128835798279)},
    {FRAC_CONST(0.846286702490560), FRAC_CONST(0.532727713928659)}, {FRAC_CONST(0.844648334111418), FRAC_CONST(0.535321577822907)}, {FRAC_CONST(0.843002015580473), FRAC_CONST(0.537910403066589)},
    {FRAC_CONST(0.841347762393502), FRAC_CONST(0.540494165292695)}, {FRAC_CONST(0.839685590120966), FRAC_CONST(0.543072840181872)}, {FRAC_CONST(0.838015514407864), FRAC_CONST(0.545646403462649)},
    {FRAC_CONST(0.836337550973584), FRAC_CONST(0.548214830911668)}, {FRAC_CONST(0.834651715611756), FRAC_CONST(0.550778098353912)}, {FRAC_CONST(0.832958024190107), FRAC_CONST(0.553336181662932)},
    {FRAC_CONST(0.831256492650303), FRAC_CONST(0.555889056761074)}, {FRAC_CONST(0.829547137007809), FRAC_CONST(0.558436699619704)}, {FRAC_CONST(0.827829973351730), FRAC_CONST(0.560979086259438)},
    {FRAC_CONST(0.826105017844665), FRAC_CONST(0.563516192750365)}, {FRAC_CONST(0.824372286722551), FRAC_CONST(0.566047995212271)}, {FRAC_CONST(0.822631796294515), FRAC_CONST(0.568574469814869)},
    {FRAC_CONST(0.820883562942715), FRAC_CONST(0.571095592778017)}, {FRAC_CONST(0.819127603122188), FRAC_CONST(0.573611340371945)}, {FRAC_CONST(0.817363933360698), FRAC_CONST(0.576121688917478)},
    {FRAC_CONST(0.815592570258577), FRAC_CONST(0.578626614786261)}, {FRAC_CONST(0.813813530488567), FRAC_CONST(0.581126094400978)}, {FRAC_CONST(0.812026830795670), FRAC_CONST(0.583620104235573)},
    {FRAC_CONST(0.810232487996982), FRAC_CONST(0.586108620815476)}, {FRAC_CONST(0.808430518981543), FRAC_CONST(0.588591620717823)}, {FRAC_CONST(0.806620940710170), FRAC_CONST(0.591069080571671)},
    {FRAC_CONST(0.804803770215303), FRAC_CONST(0.593540977058226)}, {FRAC_CONST(0.802979024600843), FRAC_CONST(0.596007286911057)}, {FRAC_CONST(0.801146721041991), FRAC_CONST(0.598467986916314)},
    {FRAC_CONST(0.799306876785086), FRAC_CONST(0.600923053912954)}, {FRAC_CONST(0.797459509147442), FRAC_CONST(0.603372464792950)}, {FRAC_CONST(0.795604635517188), FRAC_CONST(0.605816196501515)},
    {FRAC_CONST(0.793742273353100), FRAC_CONST(0.608254226037314)}, {FRAC_CONST(0.791872440184440), FRAC_CONST(0.610686530452686)}, {FRAC_CONST(0.789995153610791), FRAC_CONST(0.613113086853855)},
    {FRAC_CONST(0.788110431301888), FRAC_CONST(0.615533872401147)}, {FRAC_CONST(0.786218290997456), FRAC_CONST(0.617948864309208)}, {FRAC_CONST(0.784318750507039), FRAC_CONST(0.620358039847214)},
    {FRAC_CONST(0.782411827709837), FRAC_CONST(0.622761376339086)}, {FRAC_CONST(0.780497540554532), FRAC_CONST(0.625158851163708)}, {FRAC_CONST(0.778575907059125), FRAC_CONST(0.627550441755132)},
    {FRAC_CONST(0.776646945310762), FRAC_CONST(0.629936125602796)}, {FRAC_CONST(0.774710673465566), FRAC_CONST(0.632315880251738)}, {FRAC_CONST(0.772767109748464), FRAC_CONST(0.634689683302798)},
    {FRAC_CONST(0.770816272453019), FRAC_CONST(0.637057512412839)}, {FRAC_CONST(0.768858179941253), FRAC_CONST(0.639419345294951)}, {FRAC_CONST(0.766892850643481), FRAC_CONST(0.641775159718664)},
    {FRAC_CONST(0.764920303058128), FRAC_CONST(0.644124933510155)}, {FRAC_CONST(0.762940555751566), FRAC_CONST(0.646468644552458)}, {FRAC_CONST(0.760953627357928), FRAC_CONST(0.648806270785673)},
    {FRAC_CONST(0.758959536578942), FRAC_CONST(0.651137790207170)}, {FRAC_CONST(0.756958302183750), FRAC_CONST(0.653463180871802)}, {FRAC_CONST(0.754949943008733), FRAC_CONST(0.655782420892106)},
    {FRAC_CONST(0.752934477957330), FRAC_CONST(0.658095488438511)}, {FRAC_CONST(0.750911925999868), FRAC_CONST(0.660402361739545)}, {FRAC_CONST(0.748882306173375), FRAC_CONST(0.662703019082037)},
    {FRAC_CONST(0.746845637581407), FRAC_CONST(0.664997438811325)}, {FRAC_CONST(0.744801939393863), FRAC_CONST(0.667285599331456)}, {FRAC_CONST(0.742751230846809), FRAC_CONST(0.669567479105392)},
    {FRAC_CONST(0.740693531242296), FRAC_CONST(0.671843056655212)}, {FRAC_CONST(0.738628859948175), FRAC_CONST(0.674112310562312)}, {FRAC_CONST(0.736557236397919), FRAC_CONST(0.676375219467612)},
    {FRAC_CONST(0.734478680090438), FRAC_CONST(0.678631762071749)}, {FRAC_CONST(0.732393210589896), FRAC_CONST(0.680881917135287)}, {FRAC_CONST(0.730300847525525), FRAC_CONST(0.683125663478909)},
    {FRAC_CONST(0.728201610591445), FRAC_CONST(0.685362979983619)}, {FRAC_CONST(0.726095519546471), FRAC_CONST(0.687593845590942)}, {FRAC_CONST(0.723982594213936), FRAC_CONST(0.689818239303122)},
    {FRAC_CONST(0.721862854481496), FRAC_CONST(0.692036140183319)}, {FRAC_CONST(0.719736320300951), FRAC_CONST(0.694247527355803)}, {FRAC_CONST(0.717603011688049), FRAC_CONST(0.696452380006158)},
    {FRAC_CONST(0.715462948722304), FRAC_CONST(0.698650677381469)}, {FRAC_CONST(0.713316151546803), FRAC_CONST(0.700842398790526)}, {FRAC_CONST(0.711162640368018), FRAC_CONST(0.703027523604011)},
    {FRAC_CONST(0.709002435455618), FRAC_CONST(0.705206031254698)}, {FRAC_CONST(0.706835557142274), FRAC_CONST(0.707377901237642)}, {FRAC_CONST(0.704662025823469), FRAC_CONST(0.709543113110377)},
    {FRAC_CONST(0.702481861957308), FRAC_CONST(0.711701646493103)}, {FRAC_CONST(0.700295086064324), FRAC_CONST(0.713853481068882)}, {FRAC_CONST(0.698101718727284), FRAC_CONST(0.715998596583829)},
    {FRAC_CONST(0.695901780590997), FRAC_CONST(0.718136972847297)}, {FRAC_CONST(0.693695292362118), FRAC_CONST(0.720268589732077)}, {FRAC_CONST(0.691482274808956), FRAC_CONST(0.722393427174578)},
    {FRAC_CONST(0.689262748761273), FRAC_CONST(0.724511465175020)}, {FRAC_CONST(0.687036735110096), FRAC_CONST(0.726622683797623)}, {FRAC_CONST(0.684804254807511), FRAC_CONST(0.728727063170794)},
    {FRAC_CONST(0.682565328866473), FRAC_CONST(0.730824583487312)}, {FRAC_CONST(0.680319978360607), FRAC_CONST(0.732915225004518)}, {FRAC_CONST(0.678068224424007), FRAC_CONST(0.734998968044497)},
    {FRAC_CONST(0.675810088251037), FRAC_CONST(0.737075792994266)}, {FRAC_CONST(0.673545591096136), FRAC_CONST(0.739145680305957)}, {FRAC_CONST(0.671274754273613), FRAC_CONST(0.741208610497004)},
    {FRAC_CONST(0.668997599157450), FRAC_CONST(0.743264564150321)}, {FRAC_CONST(0.666714147181098), FRAC_CONST(0.745313521914490)}, {FRAC_CONST(0.664424419837275), FRAC_CONST(0.747355464503940)},
    {FRAC_CONST(0.662128438677769), FRAC_CONST(0.749390372699130)}, {FRAC_CONST(0.659826225313227), FRAC_CONST(0.751418227346727)}, {FRAC_CONST(0.657517801412960), FRAC_CONST(0.753439009359794)},
    {FRAC_CONST(0.655203188704732), FRAC_CONST(0.755452699717958)}, {FRAC_CONST(0.652882408974559), FRAC_CONST(0.757459279467601)}, {FRAC_CONST(0.650555484066504), FRAC_CONST(0.759458729722028)},
    {FRAC_CONST(0.648222435882470), FRAC_CONST(0.761451031661654)}, {FRAC_CONST(0.645883286381996), FRAC_CONST(0.763436166534172)}, {FRAC_CONST(0.643538057582048), FRAC_CONST(0.765414115654738)},
    {FRAC_CONST(0.641186771556811), FRAC_CONST(0.767384860406142)}, {FRAC_CONST(0.638829450437486), FRAC_CONST(0.769348382238982)}, {FRAC_CONST(0.636466116412077), FRAC_CONST(0.771304662671845)},
    {FRAC_CONST(0.634096791725184), FRAC_CONST(0.773253683291473)}, {FRAC_CONST(0.631721498677792), FRAC_CONST(0.775195425752941)}, {FRAC_CONST(0.629340259627066), FRAC_CONST(0.777129871779832)},
    {FRAC_CONST(0.626953096986133), FRAC_CONST(0.779057003164401)}, {FRAC_CONST(0.624560033223877), FRAC_CONST(0.780976801767754)}, {FRAC_CONST(0.622161090864727), FRAC_CONST(0.782889249520015)},
    {FRAC_CONST(0.619756292488441), FRAC_CONST(0.784794328420499)}, {FRAC_CONST(0.617345660729897), FRAC_CONST(0.786692020537877)}, {FRAC_CONST(0.614929218278880), FRAC_CONST(0.788582308010347)},
    {FRAC_CONST(0.612506987879866), FRAC_CONST(0.790465173045805)}, {FRAC_CONST(0.610078992331810), FRAC_CONST(0.792340597922007)}, {FRAC_CONST(0.607645254487931), FRAC_CONST(0.794208564986741)},
    {FRAC_CONST(0.605205797255497), FRAC_CONST(0.796069056657988)}, {FRAC_CONST(0.602760643595607), FRAC_CONST(0.797922055424093)}, {FRAC_CONST(0.600309816522980), FRAC_CONST(0.799767543843926)},
    {FRAC_CONST(0.597853339105734), FRAC_CONST(0.801605504547046)}, {FRAC_CONST(0.595391234465169), FRAC_CONST(0.803435920233868)}, {FRAC_CONST(0.592923525775551), FRAC_CONST(0.805258773675822)},
    {FRAC_CONST(0.590450236263896), FRAC_CONST(0.807074047715518)}, {FRAC_CONST(0.587971389209745), FRAC_CONST(0.808881725266904)}, {FRAC_CONST(0.585487007944951), FRAC_CONST(0.810681789315431)},
    {FRAC_CONST(0.582997115853458), FRAC_CONST(0.812474222918210)}, {FRAC_CONST(0.580501736371077), FRAC_CONST(0.814259009204175)}, {FRAC_CONST(0.578000892985270), FRAC_CONST(0.816036131374237)},
    {FRAC_CONST(0.575494609234928), FRAC_CONST(0.817805572701444)}, {FRAC_CONST(0.572982908710149), FRAC_CONST(0.819567316531142)}, {FRAC_CONST(0.570465815052013), FRAC_CONST(0.821321346281127)},
    {FRAC_CONST(0.567943351952366), FRAC_CONST(0.823067645441802)}, {FRAC_CONST(0.565415543153590), FRAC_CONST(0.824806197576334)}, {FRAC_CONST(0.562882412448385), FRAC_CONST(0.826536986320810)},
    {FRAC_CONST(0.560343983679541), FRAC_CONST(0.828259995384386)}, {FRAC_CONST(0.557800280739717), FRAC_CONST(0.829975208549444)}, {FRAC_CONST(0.555251327571214), FRAC_CONST(0.831682609671745)},
    {FRAC_CONST(0.552697148165750), FRAC_CONST(0.833382182680580)}, {FRAC_CONST(0.550137766564234), FRAC_CONST(0.835073911578919)}, {FRAC_CONST(0.547573206856540), FRAC_CONST(0.836757780443567)},
    {FRAC_CONST(0.545003493181281), FRAC_CONST(0.838433773425308)}, {FRAC_CONST(0.542428649725581), FRAC_CONST(0.840101874749058)}, {FRAC_CONST(0.539848700724848), FRAC_CONST(0.841762068714012)},
    {FRAC_CONST(0.537263670462543), FRAC_CONST(0.843414339693793)}, {FRAC_CONST(0.534673583269956), FRAC_CONST(0.845058672136595)}, {FRAC_CONST(0.532078463525974), FRAC_CONST(0.846695050565337)},
    {FRAC_CONST(0.529478335656852), FRAC_CONST(0.848323459577802)}, {FRAC_CONST(0.526873224135985), FRAC_CONST(0.849943883846782)}, {FRAC_CONST(0.524263153483673), FRAC_CONST(0.851556308120229)},
    {FRAC_CONST(0.521648148266897), FRAC_CONST(0.853160717221390)}, {FRAC_CONST(0.519028233099081), FRAC_CONST(0.854757096048957)}, {FRAC_CONST(0.516403432639864), FRAC_CONST(0.856345429577204)},
    {FRAC_CONST(0.513773771594868), FRAC_CONST(0.857925702856130)}, {FRAC_CONST(0.511139274715464), FRAC_CONST(0.859497901011602)}, {FRAC_CONST(0.508499966798541), FRAC_CONST(0.861062009245491)},
    {FRAC_CONST(0.505855872686269), FRAC_CONST(0.862618012835817)}, {FRAC_CONST(0.503207017265869), FRAC_CONST(0.864165897136879)}, {FRAC_CONST(0.500553425469378), FRAC_CONST(0.865705647579402)},
    {FRAC_CONST(0.497895122273411), FRAC_CONST(0.867237249670668)}, {FRAC_CONST(0.495232132698931), FRAC_CONST(0.868760688994655)}, {FRAC_CONST(0.492564481811011), FRAC_CONST(0.870275951212172)},
    {FRAC_CONST(0.489892194718595), FRAC_CONST(0.871783022060993)}, {FRAC_CONST(0.487215296574269), FRAC_CONST(0.873281887355994)}, {FRAC_CONST(0.484533812574016), FRAC_CONST(0.874772532989284)},
    {FRAC_CONST(0.481847767956986), FRAC_CONST(0.876254944930338)}, {FRAC_CONST(0.479157188005253), FRAC_CONST(0.877729109226132)}, {FRAC_CONST(0.476462098043581), FRAC_CONST(0.879195012001267)},
    {FRAC_CONST(0.473762523439183), FRAC_CONST(0.880652639458111)}, {FRAC_CONST(0.471058489601483), FRAC_CONST(0.882101977876918)}, {FRAC_CONST(0.468350021981877), FRAC_CONST(0.883543013615962)},
    {FRAC_CONST(0.465637146073494), FRAC_CONST(0.884975733111667)}, {FRAC_CONST(0.462919887410955), FRAC_CONST(0.886400122878730)}, {FRAC_CONST(0.460198271570134), FRAC_CONST(0.887816169510255)},
    {FRAC_CONST(0.457472324167916), FRAC_CONST(0.889223859677868)}, {FRAC_CONST(0.454742070861955), FRAC_CONST(0.890623180131856)}, {FRAC_CONST(0.452007537350437), FRAC_CONST(0.892014117701280)},
    {FRAC_CONST(0.449268749371830), FRAC_CONST(0.893396659294108)}, {FRAC_CONST(0.446525732704651), FRAC_CONST(0.894770791897330)}, {FRAC_CONST(0.443778513167218), FRAC_CONST(0.896136502577087)},
    {FRAC_CONST(0.441027116617407), FRAC_CONST(0.897493778478790)}, {FRAC_CONST(0.438271568952410), FRAC_CONST(0.898842606827242)}, {FRAC_CONST(0.435511896108492), FRAC_CONST(0.900182974926757)},
    {FRAC_CONST(0.432748124060744), FRAC_CONST(0.901514870161279)}, {FRAC_CONST(0.429980278822841), FRAC_CONST(0.902838279994503)}, {FRAC_CONST(0.427208386446796), FRAC_CONST(0.904153191969992)},
    {FRAC_CONST(0.424432473022717), FRAC_CONST(0.905459593711293)}, {FRAC_CONST(0.421652564678558), FRAC_CONST(0.906757472922057)}, {FRAC_CONST(0.418868687579875), FRAC_CONST(0.908046817386148)},
    {FRAC_CONST(0.416080867929579), FRAC_CONST(0.909327614967767)}, {FRAC_CONST(0.413289131967691), FRAC_CONST(0.910599853611559)}, {FRAC_CONST(0.410493505971093), FRAC_CONST(0.911863521342729)},
    {FRAC_CONST(0.407694016253280), FRAC_CONST(0.913118606267154)}, {FRAC_CONST(0.404890689164118), FRAC_CONST(0.914365096571498)}, {FRAC_CONST(0.402083551089587), FRAC_CONST(0.915602980523320)},
    {FRAC_CONST(0.399272628451541), FRAC_CONST(0.916832246471184)}, {FRAC_CONST(0.396457947707454), FRAC_CONST(0.918052882844770)}, {FRAC_CONST(0.393639535350173), FRAC_CONST(0.919264878154985)},
    {FRAC_CONST(0.390817417907669), FRAC_CONST(0.920468220994067)}, {FRAC_CONST(0.387991621942785), FRAC_CONST(0.921662900035695)}, {FRAC_CONST(0.385162174052990), FRAC_CONST(0.922848904035094)},
    {FRAC_CONST(0.382329100870125), FRAC_CONST(0.924026221829144)}, {FRAC_CONST(0.379492429060153), FRAC_CONST(0.925194842336480)}, {FRAC_CONST(0.376652185322910), FRAC_CONST(0.926354754557603)},
    {FRAC_CONST(0.373808396391851), FRAC_CONST(0.927505947574975)}, {FRAC_CONST(0.370961089033802), FRAC_CONST(0.928648410553131)}, {FRAC_CONST(0.368110290048703), FRAC_CONST(0.929782132738772)},
    {FRAC_CONST(0.365256026269360), FRAC_CONST(0.930907103460875)}, {FRAC_CONST(0.362398324561191), FRAC_CONST(0.932023312130786)}, {FRAC_CONST(0.359537211821973), FRAC_CONST(0.933130748242325)},
    {FRAC_CONST(0.356672714981588), FRAC_CONST(0.934229401371881)}, {FRAC_CONST(0.353804861001772), FRAC_CONST(0.935319261178512)}, {FRAC_CONST(0.350933676875858), FRAC_CONST(0.936400317404042)},
    {FRAC_CONST(0.348059189628526), FRAC_CONST(0.937472559873159)}, {FRAC_CONST(0.345181426315543), FRAC_CONST(0.938535978493509)}, {FRAC_CONST(0.342300414023514), FRAC_CONST(0.939590563255789)},
    {FRAC_CONST(0.339416179869623), FRAC_CONST(0.940636304233848)}, {FRAC_CONST(0.336528751001382), FRAC_CONST(0.941673191584771)}, {FRAC_CONST(0.333638154596371), FRAC_CONST(0.942701215548982)},
    {FRAC_CONST(0.330744417861983), FRAC_CONST(0.943720366450326)}, {FRAC_CONST(0.327847568035171), FRAC_CONST(0.944730634696168)}, {FRAC_CONST(0.324947632382188), FRAC_CONST(0.945732010777477)},
    {FRAC_CONST(0.322044638198335), FRAC_CONST(0.946724485268921)}, {FRAC_CONST(0.319138612807696), FRAC_CONST(0.947708048828952)}, {FRAC_CONST(0.316229583562890), FRAC_CONST(0.948682692199895)},
    {FRAC_CONST(0.313317577844809), FRAC_CONST(0.949648406208035)}, {FRAC_CONST(0.310402623062359), FRAC_CONST(0.950605181763705)}, {FRAC_CONST(0.307484746652204), FRAC_CONST(0.951553009861369)},
    {FRAC_CONST(0.304563976078509), FRAC_CONST(0.952491881579706)}, {FRAC_CONST(0.301640338832679), FRAC_CONST(0.953421788081700)}, {FRAC_CONST(0.298713862433100), FRAC_CONST(0.954342720614716)},
    {FRAC_CONST(0.295784574424884), FRAC_CONST(0.955254670510587)}, {FRAC_CONST(0.292852502379605), FRAC_CONST(0.956157629185692)}, {FRAC_CONST(0.289917673895041), FRAC_CONST(0.957051588141041)},
    {FRAC_CONST(0.286980116594916), FRAC_CONST(0.957936538962351)}, {FRAC_CONST(0.284039858128637), FRAC_CONST(0.958812473320129)}, {FRAC_CONST(0.281096926171038), FRAC_CONST(0.959679382969747)},
    {FRAC_CONST(0.278151348422115), FRAC_CONST(0.960537259751520)}, {FRAC_CONST(0.275203152606767), FRAC_CONST(0.961386095590786)}, {FRAC_CONST(0.272252366474537), FRAC_CONST(0.962225882497979)},
    {FRAC_CONST(0.269299017799346), FRAC_CONST(0.963056612568704)}, {FRAC_CONST(0.266343134379238), FRAC_CONST(0.963878277983814)}, {FRAC_CONST(0.263384744036113), FRAC_CONST(0.964690871009481)},
    {FRAC_CONST(0.260423874615468), FRAC_CONST(0.965494383997270)}, {FRAC_CONST(0.257460553986133), FRAC_CONST(0.966288809384210)}, {FRAC_CONST(0.254494810040011), FRAC_CONST(0.967074139692867)},
    {FRAC_CONST(0.251526670691813), FRAC_CONST(0.967850367531414)}, {FRAC_CONST(0.248556163878797), FRAC_CONST(0.968617485593698)}, {FRAC_CONST(0.245583317560504), FRAC_CONST(0.969375486659311)},
    {FRAC_CONST(0.242608159718497), FRAC_CONST(0.970124363593660)}, {FRAC_CONST(0.239630718356094), FRAC_CONST(0.970864109348029)}, {FRAC_CONST(0.236651021498106), FRAC_CONST(0.971594716959650)},
    {FRAC_CONST(0.233669097190577), FRAC_CONST(0.972316179551765)}, {FRAC_CONST(0.230684973500512), FRAC_CONST(0.973028490333694)}, {FRAC_CONST(0.227698678515621), FRAC_CONST(0.973731642600896)},
    {FRAC_CONST(0.224710240344050), FRAC_CONST(0.974425629735035)}, {FRAC_CONST(0.221719687114115), FRAC_CONST(0.975110445204039)}, {FRAC_CONST(0.218727046974045), FRAC_CONST(0.975786082562164)},
    {FRAC_CONST(0.215732348091706), FRAC_CONST(0.976452535450054)}, {FRAC_CONST(0.212735618654346), FRAC_CONST(0.977109797594801)}, {FRAC_CONST(0.209736886868323), FRAC_CONST(0.977757862810003)},
    {FRAC_CONST(0.206736180958844), FRAC_CONST(0.978396724995823)}, {FRAC_CONST(0.203733529169694), FRAC_CONST(0.979026378139048)}, {FRAC_CONST(0.200728959762976), FRAC_CONST(0.979646816313141)},
    {FRAC_CONST(0.197722501018842), FRAC_CONST(0.980258033678304)}, {FRAC_CONST(0.194714181235226), FRAC_CONST(0.980860024481524)}, {FRAC_CONST(0.191704028727580), FRAC_CONST(0.981452783056636)},
    {FRAC_CONST(0.188692071828605), FRAC_CONST(0.982036303824369)}, {FRAC_CONST(0.185678338887988), FRAC_CONST(0.982610581292405)}, {FRAC_CONST(0.182662858272129), FRAC_CONST(0.983175610055424)},
    {FRAC_CONST(0.179645658363882), FRAC_CONST(0.983731384795162)}, {FRAC_CONST(0.176626767562281), FRAC_CONST(0.984277900280454)}, {FRAC_CONST(0.173606214282275), FRAC_CONST(0.984815151367289)},
    {FRAC_CONST(0.170584026954464), FRAC_CONST(0.985343132998855)}, {FRAC_CONST(0.167560234024824), FRAC_CONST(0.985861840205587)}, {FRAC_CONST(0.164534863954446), FRAC_CONST(0.986371268105216)},
    {FRAC_CONST(0.161507945219266), FRAC_CONST(0.986871411902812)}, {FRAC_CONST(0.158479506309796), FRAC_CONST(0.987362266890832)}, {FRAC_CONST(0.155449575730856), FRAC_CONST(0.987843828449162)},
    {FRAC_CONST(0.152418182001307), FRAC_CONST(0.988316092045160)}, {FRAC_CONST(0.149385353653780), FRAC_CONST(0.988779053233702)}, {FRAC_CONST(0.146351119234411), FRAC_CONST(0.989232707657220)},
    {FRAC_CONST(0.143315507302572), FRAC_CONST(0.989677051045747)}, {FRAC_CONST(0.140278546430595), FRAC_CONST(0.990112079216954)}, {FRAC_CONST(0.137240265203516), FRAC_CONST(0.990537788076189)},
    {FRAC_CONST(0.134200692218792), FRAC_CONST(0.990954173616519)}, {FRAC_CONST(0.131159856086043), FRAC_CONST(0.991361231918763)}, {FRAC_CONST(0.128117785426777), FRAC_CONST(0.991758959151536)},
    {FRAC_CONST(0.125074508874121), FRAC_CONST(0.992147351571276)}, {FRAC_CONST(0.122030055072553), FRAC_CONST(0.992526405522286)}, {FRAC_CONST(0.118984452677633), FRAC_CONST(0.992896117436766)},
    {FRAC_CONST(0.115937730355728), FRAC_CONST(0.993256483834846)}, {FRAC_CONST(0.112889916783750), FRAC_CONST(0.993607501324622)}, {FRAC_CONST(0.109841040648883), FRAC_CONST(0.993949166602181)},
    {FRAC_CONST(0.106791130648307), FRAC_CONST(0.994281476451642)}, {FRAC_CONST(0.103740215488939), FRAC_CONST(0.994604427745176)}, {FRAC_CONST(0.100688323887154), FRAC_CONST(0.994918017443043)},
    {FRAC_CONST(0.097635484568517), FRAC_CONST(0.995222242593618)}, {FRAC_CONST(0.094581726267515), FRAC_CONST(0.995517100333418)}, {FRAC_CONST(0.091527077727285), FRAC_CONST(0.995802587887129)},
    {FRAC_CONST(0.088471567699341), FRAC_CONST(0.996078702567634)}, {FRAC_CONST(0.085415224943307), FRAC_CONST(0.996345441776036)}, {FRAC_CONST(0.082358078226647), FRAC_CONST(0.996602803001684)},
    {FRAC_CONST(0.079300156324388), FRAC_CONST(0.996850783822197)}, {FRAC_CONST(0.076241488018856), FRAC_CONST(0.997089381903483)}, {FRAC_CONST(0.073182102099403), FRAC_CONST(0.997318594999769)},
    {FRAC_CONST(0.070122027362134), FRAC_CONST(0.997538420953611)}, {FRAC_CONST(0.067061292609637), FRAC_CONST(0.997748857695926)}, {FRAC_CONST(0.063999926650714), FRAC_CONST(0.997949903246001)},
    {FRAC_CONST(0.060937958300107), FRAC_CONST(0.998141555711521)}, {FRAC_CONST(0.057875416378229), FRAC_CONST(0.998323813288578)}, {FRAC_CONST(0.054812329710890), FRAC_CONST(0.998496674261695)},
    {FRAC_CONST(0.051748727129028), FRAC_CONST(0.998660137003838)}, {FRAC_CONST(0.048684637468439), FRAC_CONST(0.998814199976435)}, {FRAC_CONST(0.045620089569500), FRAC_CONST(0.998958861729386)},
    {FRAC_CONST(0.042555112276904), FRAC_CONST(0.999094120901079)}, {FRAC_CONST(0.039489734439384), FRAC_CONST(0.999219976218404)}, {FRAC_CONST(0.036423984909444), FRAC_CONST(0.999336426496761)},
    {FRAC_CONST(0.033357892543086), FRAC_CONST(0.999443470640078)}, {FRAC_CONST(0.030291486199539), FRAC_CONST(0.999541107640813)}, {FRAC_CONST(0.027224794740988), FRAC_CONST(0.999629336579970)},
    {FRAC_CONST(0.024157847032300), FRAC_CONST(0.999708156627105)}, {FRAC_CONST(0.021090671940755), FRAC_CONST(0.999777567040333)}, {FRAC_CONST(0.018023298335774), FRAC_CONST(0.999837567166337)},
    {FRAC_CONST(0.014955755088644), FRAC_CONST(0.999888156440373)}, {FRAC_CONST(0.011888071072252), FRAC_CONST(0.999929334386276)}, {FRAC_CONST(0.008820275160808), FRAC_CONST(0.999961100616463)},
    {FRAC_CONST(0.005752396229574), FRAC_CONST(0.999983454831938)}, {FRAC_CONST(0.002684463154596), FRAC_CONST(0.999996396822294)}};

/* 64 (N/4) complex twiddle factors */
 const complex_t mdct_tab_256[] = {
    {FRAC_CONST(0.999995293809576), FRAC_CONST(0.003067956762966)}, {FRAC_CONST(0.999618822495179), FRAC_CONST(0.027608145778966)}, {FRAC_CONST(0.998640218180265), FRAC_CONST(0.052131704680283)},
    {FRAC_CONST(0.997060070339483), FRAC_CONST(0.076623861392031)}, {FRAC_CONST(0.994879330794806), FRAC_CONST(0.101069862754828)}, {FRAC_CONST(0.992099313142192), FRAC_CONST(0.125454983411546)},
    {FRAC_CONST(0.988721691960324), FRAC_CONST(0.149764534677322)}, {FRAC_CONST(0.984748501801904), FRAC_CONST(0.173983873387464)}, {FRAC_CONST(0.980182135968117), FRAC_CONST(0.198098410717954)},
    {FRAC_CONST(0.975025345066994), FRAC_CONST(0.222093620973204)}, {FRAC_CONST(0.969281235356549), FRAC_CONST(0.245955050335795)}, {FRAC_CONST(0.962953266873684), FRAC_CONST(0.269668325572915)},
    {FRAC_CONST(0.956045251349996), FRAC_CONST(0.293219162694259)}, {FRAC_CONST(0.948561349915730), FRAC_CONST(0.316593375556166)}, {FRAC_CONST(0.940506070593268), FRAC_CONST(0.339776884406827)},
    {FRAC_CONST(0.931884265581668), FRAC_CONST(0.362755724367397)}, {FRAC_CONST(0.922701128333879), FRAC_CONST(0.385516053843919)}, {FRAC_CONST(0.912962190428398), FRAC_CONST(0.408044162864979)},
    {FRAC_CONST(0.902673318237259), FRAC_CONST(0.430326481340083)}, {FRAC_CONST(0.891840709392343), FRAC_CONST(0.452349587233771)}, {FRAC_CONST(0.880470889052161), FRAC_CONST(0.474100214650550)},
    {FRAC_CONST(0.868570705971341), FRAC_CONST(0.495565261825773)}, {FRAC_CONST(0.856147328375194), FRAC_CONST(0.516731799017650)}, {FRAC_CONST(0.843208239641845), FRAC_CONST(0.537587076295645)},
    {FRAC_CONST(0.829761233794523), FRAC_CONST(0.558118531220556)}, {FRAC_CONST(0.815814410806734), FRAC_CONST(0.578313796411656)}, {FRAC_CONST(0.801376171723140), FRAC_CONST(0.598160706996342)},
    {FRAC_CONST(0.786455213599086), FRAC_CONST(0.617647307937804)}, {FRAC_CONST(0.771060524261814), FRAC_CONST(0.636761861236284)}, {FRAC_CONST(0.755201376896537), FRAC_CONST(0.655492852999615)},
    {FRAC_CONST(0.738887324460615), FRAC_CONST(0.673829000378756)}, {FRAC_CONST(0.722128193929215), FRAC_CONST(0.691759258364158)}, {FRAC_CONST(0.704934080375905), FRAC_CONST(0.709272826438866)},
    {FRAC_CONST(0.687315340891759), FRAC_CONST(0.726359155084346)}, {FRAC_CONST(0.669282588346636), FRAC_CONST(0.743007952135122)}, {FRAC_CONST(0.650846684996381), FRAC_CONST(0.759209188978388)},
    {FRAC_CONST(0.632018735939809), FRAC_CONST(0.774953106594874)}, {FRAC_CONST(0.612810082429410), FRAC_CONST(0.790230221437310)}, {FRAC_CONST(0.593232295039800), FRAC_CONST(0.805031331142964)},
    {FRAC_CONST(0.573297166698042), FRAC_CONST(0.819347520076797)}, {FRAC_CONST(0.553016705580028), FRAC_CONST(0.833170164701913)}, {FRAC_CONST(0.532403127877198), FRAC_CONST(0.846490938774052)},
    {FRAC_CONST(0.511468850437971), FRAC_CONST(0.859301818357008)}, {FRAC_CONST(0.490226483288291), FRAC_CONST(0.871595086655951)}, {FRAC_CONST(0.468688822035828), FRAC_CONST(0.883363338665732)},
    {FRAC_CONST(0.446868840162374), FRAC_CONST(0.894599485631383)}, {FRAC_CONST(0.424779681209109), FRAC_CONST(0.905296759318119)}, {FRAC_CONST(0.402434650859419), FRAC_CONST(0.915448716088268)},
    {FRAC_CONST(0.379847208924051), FRAC_CONST(0.925049240782678)}, {FRAC_CONST(0.357030961233430), FRAC_CONST(0.934092550404259)}, {FRAC_CONST(0.333999651442009), FRAC_CONST(0.942573197601447)},
    {FRAC_CONST(0.310767152749611), FRAC_CONST(0.950486073949482)}, {FRAC_CONST(0.287347459544730), FRAC_CONST(0.957826413027533)}, {FRAC_CONST(0.263754678974832), FRAC_CONST(0.964589793289813)},
    {FRAC_CONST(0.240003022448742), FRAC_CONST(0.970772140728950)}, {FRAC_CONST(0.216106797076220), FRAC_CONST(0.976369731330021)}, {FRAC_CONST(0.192080397049892), FRAC_CONST(0.981379193313755)},
    {FRAC_CONST(0.167938294974731), FRAC_CONST(0.985797509167567)}, {FRAC_CONST(0.143695033150295), FRAC_CONST(0.989622017463201)}, {FRAC_CONST(0.119365214810991), FRAC_CONST(0.992850414459865)},
    {FRAC_CONST(0.094963495329639), FRAC_CONST(0.995480755491927)}, {FRAC_CONST(0.070504573389614), FRAC_CONST(0.997511456140303)}, {FRAC_CONST(0.046003182130915), FRAC_CONST(0.998941293186857)},
    {FRAC_CONST(0.021474080275470), FRAC_CONST(0.999769405351215)}};

#ifdef LD_DEC
/* 256 (N/4) complex twiddle factors */
 const complex_t mdct_tab_1024[] = {
    {FRAC_CONST(0.999999705862882), FRAC_CONST(0.000766990318743)}, {FRAC_CONST(0.999976174986898), FRAC_CONST(0.006902858724730)}, {FRAC_CONST(0.999914995573113), FRAC_CONST(0.013038467241987)},
    {FRAC_CONST(0.999816169924900), FRAC_CONST(0.019173584868323)}, {FRAC_CONST(0.999679701762988), FRAC_CONST(0.025307980620025)}, {FRAC_CONST(0.999505596225325), FRAC_CONST(0.031441423540560)},
    {FRAC_CONST(0.999293859866888), FRAC_CONST(0.037573682709270)}, {FRAC_CONST(0.999044500659429), FRAC_CONST(0.043704527250063)}, {FRAC_CONST(0.998757527991183), FRAC_CONST(0.049833726340107)},
    {FRAC_CONST(0.998432952666508), FRAC_CONST(0.055961049218521)}, {FRAC_CONST(0.998070786905482), FRAC_CONST(0.062086265195060)}, {FRAC_CONST(0.997671044343441), FRAC_CONST(0.068209143658806)},
    {FRAC_CONST(0.997233740030466), FRAC_CONST(0.074329454086846)}, {FRAC_CONST(0.996758890430818), FRAC_CONST(0.080446966052950)}, {FRAC_CONST(0.996246513422316), FRAC_CONST(0.086561449236251)},
    {FRAC_CONST(0.995696628295664), FRAC_CONST(0.092672673429913)}, {FRAC_CONST(0.995109255753726), FRAC_CONST(0.098780408549800)}, {FRAC_CONST(0.994484417910748), FRAC_CONST(0.104884424643135)},
    {FRAC_CONST(0.993822138291520), FRAC_CONST(0.110984491897163)}, {FRAC_CONST(0.993122441830496), FRAC_CONST(0.117080380647801)}, {FRAC_CONST(0.992385354870852), FRAC_CONST(0.123171861388280)},
    {FRAC_CONST(0.991610905163495), FRAC_CONST(0.129258704777796)}, {FRAC_CONST(0.990799121866020), FRAC_CONST(0.135340681650134)}, {FRAC_CONST(0.989950035541609), FRAC_CONST(0.141417563022303)},
    {FRAC_CONST(0.989063678157882), FRAC_CONST(0.147489120103154)}, {FRAC_CONST(0.988140083085693), FRAC_CONST(0.153555124301993)}, {FRAC_CONST(0.987179285097874), FRAC_CONST(0.159615347237193)},
    {FRAC_CONST(0.986181320367928), FRAC_CONST(0.165669560744784)}, {FRAC_CONST(0.985146226468662), FRAC_CONST(0.171717536887050)}, {FRAC_CONST(0.984074042370776), FRAC_CONST(0.177759047961107)},
    {FRAC_CONST(0.982964808441396), FRAC_CONST(0.183793866507478)}, {FRAC_CONST(0.981818566442553), FRAC_CONST(0.189821765318656)}, {FRAC_CONST(0.980635359529608), FRAC_CONST(0.195842517447658)},
    {FRAC_CONST(0.979415232249635), FRAC_CONST(0.201855896216568)}, {FRAC_CONST(0.978158230539735), FRAC_CONST(0.207861675225075)}, {FRAC_CONST(0.976864401725313), FRAC_CONST(0.213859628358994)},
    {FRAC_CONST(0.975533794518291), FRAC_CONST(0.219849529798779)}, {FRAC_CONST(0.974166459015280), FRAC_CONST(0.225831154028026)}, {FRAC_CONST(0.972762446695689), FRAC_CONST(0.231804275841965)},
    {FRAC_CONST(0.971321810419786), FRAC_CONST(0.237768670355934)}, {FRAC_CONST(0.969844604426715), FRAC_CONST(0.243724113013852)}, {FRAC_CONST(0.968330884332445), FRAC_CONST(0.249670379596669)},
    {FRAC_CONST(0.966780707127683), FRAC_CONST(0.255607246230807)}, {FRAC_CONST(0.965194131175725), FRAC_CONST(0.261534489396596)}, {FRAC_CONST(0.963571216210257), FRAC_CONST(0.267451885936678)},
    {FRAC_CONST(0.961912023333112), FRAC_CONST(0.273359213064419)}, {FRAC_CONST(0.960216615011963), FRAC_CONST(0.279256248372291)}, {FRAC_CONST(0.958485055077976), FRAC_CONST(0.285142769840249)},
    {FRAC_CONST(0.956717408723403), FRAC_CONST(0.291018555844085)}, {FRAC_CONST(0.954913742499131), FRAC_CONST(0.296883385163778)}, {FRAC_CONST(0.953074124312172), FRAC_CONST(0.302737036991819)},
    {FRAC_CONST(0.951198623423113), FRAC_CONST(0.308579290941525)}, {FRAC_CONST(0.949287310443502), FRAC_CONST(0.314409927055337)}, {FRAC_CONST(0.947340257333192), FRAC_CONST(0.320228725813100)},
    {FRAC_CONST(0.945357537397632), FRAC_CONST(0.326035468140330)}, {FRAC_CONST(0.943339225285108), FRAC_CONST(0.331829935416461)}, {FRAC_CONST(0.941285396983929), FRAC_CONST(0.337611909483075)},
    {FRAC_CONST(0.939196129819570), FRAC_CONST(0.343381172652115)}, {FRAC_CONST(0.937071502451759), FRAC_CONST(0.349137507714085)}, {FRAC_CONST(0.934911594871516), FRAC_CONST(0.354880697946223)},
    {FRAC_CONST(0.932716488398140), FRAC_CONST(0.360610527120662)}, {FRAC_CONST(0.930486265676150), FRAC_CONST(0.366326779512574)}, {FRAC_CONST(0.928221010672169), FRAC_CONST(0.372029239908285)},
    {FRAC_CONST(0.925920808671770), FRAC_CONST(0.377717693613386)}, {FRAC_CONST(0.923585746276257), FRAC_CONST(0.383391926460809)}, {FRAC_CONST(0.921215911399409), FRAC_CONST(0.389051724818894)},
    {FRAC_CONST(0.918811393264170), FRAC_CONST(0.394696875599434)}, {FRAC_CONST(0.916372282399289), FRAC_CONST(0.400327166265690)}, {FRAC_CONST(0.913898670635912), FRAC_CONST(0.405942384840403)},
    {FRAC_CONST(0.911390651104122), FRAC_CONST(0.411542319913765)}, {FRAC_CONST(0.908848318229439), FRAC_CONST(0.417126760651388)}, {FRAC_CONST(0.906271767729258), FRAC_CONST(0.422695496802233)},
    {FRAC_CONST(0.903661096609248), FRAC_CONST(0.428248318706532)}, {FRAC_CONST(0.901016403159702), FRAC_CONST(0.433785017303679)}, {FRAC_CONST(0.898337786951834), FRAC_CONST(0.439305384140100)},
    {FRAC_CONST(0.895625348834030), FRAC_CONST(0.444809211377105)}, {FRAC_CONST(0.892879190928052), FRAC_CONST(0.450296291798709)}, {FRAC_CONST(0.890099416625192), FRAC_CONST(0.455766418819435)},
    {FRAC_CONST(0.887286130582383), FRAC_CONST(0.461219386492092)}, {FRAC_CONST(0.884439438718254), FRAC_CONST(0.466654989515531)}, {FRAC_CONST(0.881559448209144), FRAC_CONST(0.472073023242369)},
    {FRAC_CONST(0.878646267485068), FRAC_CONST(0.477473283686698)}, {FRAC_CONST(0.875700006225635), FRAC_CONST(0.482855567531766)}, {FRAC_CONST(0.872720775355914), FRAC_CONST(0.488219672137627)},
    {FRAC_CONST(0.869708687042266), FRAC_CONST(0.493565395548775)}, {FRAC_CONST(0.866663854688111), FRAC_CONST(0.498892536501745)}, {FRAC_CONST(0.863586392929668), FRAC_CONST(0.504200894432690)},
    {FRAC_CONST(0.860476417631632), FRAC_CONST(0.509490269484936)}, {FRAC_CONST(0.857334045882816), FRAC_CONST(0.514760462516501)}, {FRAC_CONST(0.854159395991739), FRAC_CONST(0.520011275107596)},
    {FRAC_CONST(0.850952587482176), FRAC_CONST(0.525242509568095)}, {FRAC_CONST(0.847713741088654), FRAC_CONST(0.530453968944976)}, {FRAC_CONST(0.844442978751911), FRAC_CONST(0.535645457029741)},
    {FRAC_CONST(0.841140423614298), FRAC_CONST(0.540816778365797)}, {FRAC_CONST(0.837806200015151), FRAC_CONST(0.545967738255818)}, {FRAC_CONST(0.834440433486103), FRAC_CONST(0.551098142769075)},
    {FRAC_CONST(0.831043250746362), FRAC_CONST(0.556207798748740)}, {FRAC_CONST(0.827614779697938), FRAC_CONST(0.561296513819151)}, {FRAC_CONST(0.824155149420829), FRAC_CONST(0.566364096393064)},
    {FRAC_CONST(0.820664490168157), FRAC_CONST(0.571410355678857)}, {FRAC_CONST(0.817142933361273), FRAC_CONST(0.576435101687722)}, {FRAC_CONST(0.813590611584799), FRAC_CONST(0.581438145240810)},
    {FRAC_CONST(0.810007658581641), FRAC_CONST(0.586419297976361)}, {FRAC_CONST(0.806394209247956), FRAC_CONST(0.591378372356788)}, {FRAC_CONST(0.802750399628069), FRAC_CONST(0.596315181675744)},
    {FRAC_CONST(0.799076366909352), FRAC_CONST(0.601229540065149)}, {FRAC_CONST(0.795372249417061), FRAC_CONST(0.606121262502186)}, {FRAC_CONST(0.791638186609126), FRAC_CONST(0.610990164816272)},
    {FRAC_CONST(0.787874319070900), FRAC_CONST(0.615836063695985)}, {FRAC_CONST(0.784080788509870), FRAC_CONST(0.620658776695972)}, {FRAC_CONST(0.780257737750317), FRAC_CONST(0.625458122243814)},
    {FRAC_CONST(0.776405310727940), FRAC_CONST(0.630233919646864)}, {FRAC_CONST(0.772523652484441), FRAC_CONST(0.634985989099049)}, {FRAC_CONST(0.768612909162058), FRAC_CONST(0.639714151687640)},
    {FRAC_CONST(0.764673227998067), FRAC_CONST(0.644418229399988)}, {FRAC_CONST(0.760704757319237), FRAC_CONST(0.649098045130226)}, {FRAC_CONST(0.756707646536246), FRAC_CONST(0.653753422685936)},
    {FRAC_CONST(0.752682046138055), FRAC_CONST(0.658384186794785)}, {FRAC_CONST(0.748628107686245), FRAC_CONST(0.662990163111121)}, {FRAC_CONST(0.744545983809307), FRAC_CONST(0.667571178222540)},
    {FRAC_CONST(0.740435828196898), FRAC_CONST(0.672127059656412)}, {FRAC_CONST(0.736297795594053), FRAC_CONST(0.676657635886375)}, {FRAC_CONST(0.732132041795361), FRAC_CONST(0.681162736338795)},
    {FRAC_CONST(0.727938723639099), FRAC_CONST(0.685642191399187)}, {FRAC_CONST(0.723717999001324), FRAC_CONST(0.690095832418600)}, {FRAC_CONST(0.719470026789933), FRAC_CONST(0.694523491719966)},
    {FRAC_CONST(0.715194966938680), FRAC_CONST(0.698925002604414)}, {FRAC_CONST(0.710892980401152), FRAC_CONST(0.703300199357549)}, {FRAC_CONST(0.706564229144710), FRAC_CONST(0.707648917255684)},
    {FRAC_CONST(0.702208876144392), FRAC_CONST(0.711970992572050)}, {FRAC_CONST(0.697827085376777), FRAC_CONST(0.716266262582953)}, {FRAC_CONST(0.693419021813812), FRAC_CONST(0.720534565573905)},
    {FRAC_CONST(0.688984851416597), FRAC_CONST(0.724775740845711)}, {FRAC_CONST(0.684524741129142), FRAC_CONST(0.728989628720519)}, {FRAC_CONST(0.680038858872079), FRAC_CONST(0.733176070547833)},
    {FRAC_CONST(0.675527373536339), FRAC_CONST(0.737334908710483)}, {FRAC_CONST(0.670990454976794), FRAC_CONST(0.741465986630563)}, {FRAC_CONST(0.666428274005865), FRAC_CONST(0.745569148775325)},
    {FRAC_CONST(0.661841002387087), FRAC_CONST(0.749644240663033)}, {FRAC_CONST(0.657228812828643), FRAC_CONST(0.753691108868781)}, {FRAC_CONST(0.652591878976863), FRAC_CONST(0.757709601030268)},
    {FRAC_CONST(0.647930375409685), FRAC_CONST(0.761699565853535)}, {FRAC_CONST(0.643244477630086), FRAC_CONST(0.765660853118662)}, {FRAC_CONST(0.638534362059467), FRAC_CONST(0.769593313685423)},
    {FRAC_CONST(0.633800206031017), FRAC_CONST(0.773496799498899)}, {FRAC_CONST(0.629042187783036), FRAC_CONST(0.777371163595056)}, {FRAC_CONST(0.624260486452221), FRAC_CONST(0.781216260106276)},
    {FRAC_CONST(0.619455282066924), FRAC_CONST(0.785031944266848)}, {FRAC_CONST(0.614626755540375), FRAC_CONST(0.788818072418420)}, {FRAC_CONST(0.609775088663868), FRAC_CONST(0.792574502015408)},
    {FRAC_CONST(0.604900464099920), FRAC_CONST(0.796301091630359)}, {FRAC_CONST(0.600003065375389), FRAC_CONST(0.799997700959282)}, {FRAC_CONST(0.595083076874570), FRAC_CONST(0.803664190826924)},
    {FRAC_CONST(0.590140683832249), FRAC_CONST(0.807300423192014)}, {FRAC_CONST(0.585176072326730), FRAC_CONST(0.810906261152460)}, {FRAC_CONST(0.580189429272832), FRAC_CONST(0.814481568950499)},
    {FRAC_CONST(0.575180942414845), FRAC_CONST(0.818026211977813)}, {FRAC_CONST(0.570150800319470), FRAC_CONST(0.821540056780598)}, {FRAC_CONST(0.565099192368714), FRAC_CONST(0.825022971064580)},
    {FRAC_CONST(0.560026308752760), FRAC_CONST(0.828474823700007)}, {FRAC_CONST(0.554932340462810), FRAC_CONST(0.831895484726578)}, {FRAC_CONST(0.549817479283891), FRAC_CONST(0.835284825358337)},
    {FRAC_CONST(0.544681917787635), FRAC_CONST(0.838642717988527)}, {FRAC_CONST(0.539525849325029), FRAC_CONST(0.841969036194388)}, {FRAC_CONST(0.534349468019138), FRAC_CONST(0.845263654741918)},
    {FRAC_CONST(0.529152968757791), FRAC_CONST(0.848526449590593)}, {FRAC_CONST(0.523936547186249), FRAC_CONST(0.851757297898029)}, {FRAC_CONST(0.518700399699835), FRAC_CONST(0.854956078024615)},
    {FRAC_CONST(0.513444723436544), FRAC_CONST(0.858122669538086)}, {FRAC_CONST(0.508169716269615), FRAC_CONST(0.861256953218062)}, {FRAC_CONST(0.502875576800087), FRAC_CONST(0.864358811060534)},
    {FRAC_CONST(0.497562504349319), FRAC_CONST(0.867428126282307)}, {FRAC_CONST(0.492230698951486), FRAC_CONST(0.870464783325398)}, {FRAC_CONST(0.486880361346047), FRAC_CONST(0.873468667861385)},
    {FRAC_CONST(0.481511692970190), FRAC_CONST(0.876439666795714)}, {FRAC_CONST(0.476124895951244), FRAC_CONST(0.879377668271953)}, {FRAC_CONST(0.470720173099072), FRAC_CONST(0.882282561676009)},
    {FRAC_CONST(0.465297727898435), FRAC_CONST(0.885154237640285)}, {FRAC_CONST(0.459857764501330), FRAC_CONST(0.887992588047806)}, {FRAC_CONST(0.454400487719304), FRAC_CONST(0.890797506036281)},
    {FRAC_CONST(0.448926103015743), FRAC_CONST(0.893568886002136)}, {FRAC_CONST(0.443434816498138), FRAC_CONST(0.896306623604480)}, {FRAC_CONST(0.437926834910323), FRAC_CONST(0.899010615769039)},
    {FRAC_CONST(0.432402365624690), FRAC_CONST(0.901680760692038)}, {FRAC_CONST(0.426861616634386), FRAC_CONST(0.904316957844028)}, {FRAC_CONST(0.421304796545480), FRAC_CONST(0.906919107973678)},
    {FRAC_CONST(0.415732114569105), FRAC_CONST(0.909487113111505)}, {FRAC_CONST(0.410143780513590), FRAC_CONST(0.912020876573568)}, {FRAC_CONST(0.404540004776553), FRAC_CONST(0.914520302965104)},
    {FRAC_CONST(0.398920998336983), FRAC_CONST(0.916985298184123)}, {FRAC_CONST(0.393286972747297), FRAC_CONST(0.919415769424947)}, {FRAC_CONST(0.387638140125373), FRAC_CONST(0.921811625181708)},
    {FRAC_CONST(0.381974713146567), FRAC_CONST(0.924172775251791)}, {FRAC_CONST(0.376296905035705), FRAC_CONST(0.926499130739231)}, {FRAC_CONST(0.370604929559052), FRAC_CONST(0.928790604058057)},
    {FRAC_CONST(0.364899001016267), FRAC_CONST(0.931047108935595)}, {FRAC_CONST(0.359179334232337), FRAC_CONST(0.933268560415712)}, {FRAC_CONST(0.353446144549481), FRAC_CONST(0.935454874862015)},
    {FRAC_CONST(0.347699647819051), FRAC_CONST(0.937605969961000)}, {FRAC_CONST(0.341940060393402), FRAC_CONST(0.939721764725153)}, {FRAC_CONST(0.336167599117745), FRAC_CONST(0.941802179495998)},
    {FRAC_CONST(0.330382481321983), FRAC_CONST(0.943847135947093)}, {FRAC_CONST(0.324584924812532), FRAC_CONST(0.945856557086984)}, {FRAC_CONST(0.318775147864118), FRAC_CONST(0.947830367262101)},
    {FRAC_CONST(0.312953369211560), FRAC_CONST(0.949768492159607)}, {FRAC_CONST(0.307119808041533), FRAC_CONST(0.951670858810194)}, {FRAC_CONST(0.301274683984318), FRAC_CONST(0.953537395590833)},
    {FRAC_CONST(0.295418217105532), FRAC_CONST(0.955368032227470)}, {FRAC_CONST(0.289550627897843), FRAC_CONST(0.957162699797670)}, {FRAC_CONST(0.283672137272669), FRAC_CONST(0.958921330733213)},
    {FRAC_CONST(0.277782966551858), FRAC_CONST(0.960643858822638)}, {FRAC_CONST(0.271883337459360), FRAC_CONST(0.962330219213737)}, {FRAC_CONST(0.265973472112876), FRAC_CONST(0.963980348415994)},
    {FRAC_CONST(0.260053593015495), FRAC_CONST(0.965594184302977)}, {FRAC_CONST(0.254123923047321), FRAC_CONST(0.967171666114677)}, {FRAC_CONST(0.248184685457075), FRAC_CONST(0.968712734459795)},
    {FRAC_CONST(0.242236103853696), FRAC_CONST(0.970217331317979)}, {FRAC_CONST(0.236278402197920), FRAC_CONST(0.971685400042009)}, {FRAC_CONST(0.230311804793846), FRAC_CONST(0.973116885359925)},
    {FRAC_CONST(0.224336536280494), FRAC_CONST(0.974511733377116)}, {FRAC_CONST(0.218352821623346), FRAC_CONST(0.975869891578341)}, {FRAC_CONST(0.212360886105879), FRAC_CONST(0.977191308829712)},
    {FRAC_CONST(0.206360955321076), FRAC_CONST(0.978475935380617)}, {FRAC_CONST(0.200353255162940), FRAC_CONST(0.979723722865591)}, {FRAC_CONST(0.194338011817989), FRAC_CONST(0.980934624306142)},
    {FRAC_CONST(0.188315451756732), FRAC_CONST(0.982108594112514)}, {FRAC_CONST(0.182285801725153), FRAC_CONST(0.983245588085407)}, {FRAC_CONST(0.176249288736168), FRAC_CONST(0.984345563417642)},
    {FRAC_CONST(0.170206140061078), FRAC_CONST(0.985408478695768)}, {FRAC_CONST(0.164156583221016), FRAC_CONST(0.986434293901627)}, {FRAC_CONST(0.158100845978377), FRAC_CONST(0.987422970413855)},
    {FRAC_CONST(0.152039156328246), FRAC_CONST(0.988374471009341)}, {FRAC_CONST(0.145971742489812), FRAC_CONST(0.989288759864625)}, {FRAC_CONST(0.139898832897777), FRAC_CONST(0.990165802557248)},
    {FRAC_CONST(0.133820656193755), FRAC_CONST(0.991005566067049)}, {FRAC_CONST(0.127737441217662), FRAC_CONST(0.991808018777406)}, {FRAC_CONST(0.121649416999106), FRAC_CONST(0.992573130476429)},
    {FRAC_CONST(0.115556812748755), FRAC_CONST(0.993300872358093)}, {FRAC_CONST(0.109459857849718), FRAC_CONST(0.993991217023329)}, {FRAC_CONST(0.103358781848900), FRAC_CONST(0.994644138481051)},
    {FRAC_CONST(0.097253814448363), FRAC_CONST(0.995259612149133)}, {FRAC_CONST(0.091145185496681), FRAC_CONST(0.995837614855342)}, {FRAC_CONST(0.085033124980280), FRAC_CONST(0.996378124838200)},
    {FRAC_CONST(0.078917863014785), FRAC_CONST(0.996881121747814)}, {FRAC_CONST(0.072799629836352), FRAC_CONST(0.997346586646633)}, {FRAC_CONST(0.066678655793002), FRAC_CONST(0.997774502010168)},
    {FRAC_CONST(0.060555171335948), FRAC_CONST(0.998164851727646)}, {FRAC_CONST(0.054429407010919), FRAC_CONST(0.998517621102622)}, {FRAC_CONST(0.048301593449480), FRAC_CONST(0.998832796853528)},
    {FRAC_CONST(0.042171961360348), FRAC_CONST(0.999110367114175)}, {FRAC_CONST(0.036040741520706), FRAC_CONST(0.999350321434199)}, {FRAC_CONST(0.029908164767517), FRAC_CONST(0.999552650779457)},
    {FRAC_CONST(0.023774461988828), FRAC_CONST(0.999717347532362)}, {FRAC_CONST(0.017639864115082), FRAC_CONST(0.999844405492175)}, {FRAC_CONST(0.011504602110423), FRAC_CONST(0.999933819875236)},
    {FRAC_CONST(0.005368906963996), FRAC_CONST(0.999985587315143)}};
#endif // LD_DEC

#ifdef ALLOW_SMALL_FRAMELENGTH
/* 480 (N/4) complex twiddle factors */
 const complex_t mdct_tab_1920[] = {
    {FRAC_CONST(0.999999916334328), FRAC_CONST(0.000409061532028)}, {FRAC_CONST(0.999993223088129), FRAC_CONST(0.003681545574400)}, {FRAC_CONST(0.999975820717897), FRAC_CONST(0.006953990190376)},
    {FRAC_CONST(0.999947709409999), FRAC_CONST(0.010226360334704)}, {FRAC_CONST(0.999908889465485), FRAC_CONST(0.013498620962929)}, {FRAC_CONST(0.999859361300084), FRAC_CONST(0.016770737031768)},
    {FRAC_CONST(0.999799125444203), FRAC_CONST(0.020042673499487)}, {FRAC_CONST(0.999728182542920), FRAC_CONST(0.023314395326274)}, {FRAC_CONST(0.999646533355977), FRAC_CONST(0.026585867474619)},
    {FRAC_CONST(0.999554178757770), FRAC_CONST(0.029857054909681)}, {FRAC_CONST(0.999451119737344), FRAC_CONST(0.033127922599673)}, {FRAC_CONST(0.999337357398377), FRAC_CONST(0.036398435516228)},
    {FRAC_CONST(0.999212892959173), FRAC_CONST(0.039668558634781)}, {FRAC_CONST(0.999077727752645), FRAC_CONST(0.042938256934941)}, {FRAC_CONST(0.998931863226306), FRAC_CONST(0.046207495400865)},
    {FRAC_CONST(0.998775300942246), FRAC_CONST(0.049476239021636)}, {FRAC_CONST(0.998608042577122), FRAC_CONST(0.052744452791636)}, {FRAC_CONST(0.998430089922136), FRAC_CONST(0.056012101710921)},
    {FRAC_CONST(0.998241444883019), FRAC_CONST(0.059279150785597)}, {FRAC_CONST(0.998042109480008), FRAC_CONST(0.062545565028192)}, {FRAC_CONST(0.997832085847824), FRAC_CONST(0.065811309458034)},
    {FRAC_CONST(0.997611376235651), FRAC_CONST(0.069076349101624)}, {FRAC_CONST(0.997379983007114), FRAC_CONST(0.072340648993011)}, {FRAC_CONST(0.997137908640245), FRAC_CONST(0.075604174174166)},
    {FRAC_CONST(0.996885155727469), FRAC_CONST(0.078866889695354)}, {FRAC_CONST(0.996621726975566), FRAC_CONST(0.082128760615515)}, {FRAC_CONST(0.996347625205645), FRAC_CONST(0.085389752002632)},
    {FRAC_CONST(0.996062853353117), FRAC_CONST(0.088649828934106)}, {FRAC_CONST(0.995767414467660), FRAC_CONST(0.091908956497133)}, {FRAC_CONST(0.995461311713186), FRAC_CONST(0.095167099789075)},
    {FRAC_CONST(0.995144548367810), FRAC_CONST(0.098424223917834)}, {FRAC_CONST(0.994817127823813), FRAC_CONST(0.101680294002229)}, {FRAC_CONST(0.994479053587606), FRAC_CONST(0.104935275172364)},
    {FRAC_CONST(0.994130329279692), FRAC_CONST(0.108189132570007)}, {FRAC_CONST(0.993770958634630), FRAC_CONST(0.111441831348957)}, {FRAC_CONST(0.993400945500988), FRAC_CONST(0.114693336675426)},
    {FRAC_CONST(0.993020293841312), FRAC_CONST(0.117943613728403)}, {FRAC_CONST(0.992629007732074), FRAC_CONST(0.121192627700032)}, {FRAC_CONST(0.992227091363634), FRAC_CONST(0.124440343795983)},
    {FRAC_CONST(0.991814549040194), FRAC_CONST(0.127686727235827)}, {FRAC_CONST(0.991391385179751), FRAC_CONST(0.130931743253405)}, {FRAC_CONST(0.990957604314048), FRAC_CONST(0.134175357097202)},
    {FRAC_CONST(0.990513211088533), FRAC_CONST(0.137417534030720)}, {FRAC_CONST(0.990058210262297), FRAC_CONST(0.140658239332849)}, {FRAC_CONST(0.989592606708036), FRAC_CONST(0.143897438298239)},
    {FRAC_CONST(0.989116405411988), FRAC_CONST(0.147135096237670)}, {FRAC_CONST(0.988629611473887), FRAC_CONST(0.150371178478428)}, {FRAC_CONST(0.988132230106905), FRAC_CONST(0.153605650364672)},
    {FRAC_CONST(0.987624266637598), FRAC_CONST(0.156838477257806)}, {FRAC_CONST(0.987105726505845), FRAC_CONST(0.160069624536852)}, {FRAC_CONST(0.986576615264794), FRAC_CONST(0.163299057598817)},
    {FRAC_CONST(0.986036938580803), FRAC_CONST(0.166526741859069)}, {FRAC_CONST(0.985486702233375), FRAC_CONST(0.169752642751702)}, {FRAC_CONST(0.984925912115099), FRAC_CONST(0.172976725729910)},
    {FRAC_CONST(0.984354574231587), FRAC_CONST(0.176198956266353)}, {FRAC_CONST(0.983772694701407), FRAC_CONST(0.179419299853531)}, {FRAC_CONST(0.983180279756024), FRAC_CONST(0.182637722004152)},
    {FRAC_CONST(0.982577335739725), FRAC_CONST(0.185854188251500)}, {FRAC_CONST(0.981963869109555), FRAC_CONST(0.189068664149806)}, {FRAC_CONST(0.981339886435250), FRAC_CONST(0.192281115274616)},
    {FRAC_CONST(0.980705394399163), FRAC_CONST(0.195491507223158)}, {FRAC_CONST(0.980060399796194), FRAC_CONST(0.198699805614714)}, {FRAC_CONST(0.979404909533716), FRAC_CONST(0.201905976090986)},
    {FRAC_CONST(0.978738930631504), FRAC_CONST(0.205109984316464)}, {FRAC_CONST(0.978062470221657), FRAC_CONST(0.208311795978794)}, {FRAC_CONST(0.977375535548522), FRAC_CONST(0.211511376789145)},
    {FRAC_CONST(0.976678133968618), FRAC_CONST(0.214708692482577)}, {FRAC_CONST(0.975970272950556), FRAC_CONST(0.217903708818409)}, {FRAC_CONST(0.975251960074958), FRAC_CONST(0.221096391580581)},
    {FRAC_CONST(0.974523203034377), FRAC_CONST(0.224286706578026)}, {FRAC_CONST(0.973784009633218), FRAC_CONST(0.227474619645035)}, {FRAC_CONST(0.973034387787646), FRAC_CONST(0.230660096641619)},
    {FRAC_CONST(0.972274345525510), FRAC_CONST(0.233843103453878)}, {FRAC_CONST(0.971503890986252), FRAC_CONST(0.237023605994367)}, {FRAC_CONST(0.970723032420820), FRAC_CONST(0.240201570202459)},
    {FRAC_CONST(0.969931778191584), FRAC_CONST(0.243376962044711)}, {FRAC_CONST(0.969130136772239), FRAC_CONST(0.246549747515226)}, {FRAC_CONST(0.968318116747721), FRAC_CONST(0.249719892636022)},
    {FRAC_CONST(0.967495726814114), FRAC_CONST(0.252887363457390)}, {FRAC_CONST(0.966662975778551), FRAC_CONST(0.256052126058264)}, {FRAC_CONST(0.965819872559127), FRAC_CONST(0.259214146546579)},
    {FRAC_CONST(0.964966426184802), FRAC_CONST(0.262373391059634)}, {FRAC_CONST(0.964102645795299), FRAC_CONST(0.265529825764461)}, {FRAC_CONST(0.963228540641012), FRAC_CONST(0.268683416858178)},
    {FRAC_CONST(0.962344120082907), FRAC_CONST(0.271834130568359)}, {FRAC_CONST(0.961449393592416), FRAC_CONST(0.274981933153391)}, {FRAC_CONST(0.960544370751341), FRAC_CONST(0.278126790902837)},
    {FRAC_CONST(0.959629061251750), FRAC_CONST(0.281268670137799)}, {FRAC_CONST(0.958703474895872), FRAC_CONST(0.284407537211272)}, {FRAC_CONST(0.957767621595993), FRAC_CONST(0.287543358508512)},
    {FRAC_CONST(0.956821511374351), FRAC_CONST(0.290676100447394)}, {FRAC_CONST(0.955865154363025), FRAC_CONST(0.293805729478766)}, {FRAC_CONST(0.954898560803832), FRAC_CONST(0.296932212086818)},
    {FRAC_CONST(0.953921741048211), FRAC_CONST(0.300055514789431)}, {FRAC_CONST(0.952934705557117), FRAC_CONST(0.303175604138543)}, {FRAC_CONST(0.951937464900908), FRAC_CONST(0.306292446720504)},
    {FRAC_CONST(0.950930029759229), FRAC_CONST(0.309406009156434)}, {FRAC_CONST(0.949912410920903), FRAC_CONST(0.312516258102580)}, {FRAC_CONST(0.948884619283808), FRAC_CONST(0.315623160250676)},
    {FRAC_CONST(0.947846665854767), FRAC_CONST(0.318726682328294)}, {FRAC_CONST(0.946798561749429), FRAC_CONST(0.321826791099207)}, {FRAC_CONST(0.945740318192145), FRAC_CONST(0.324923453363742)},
    {FRAC_CONST(0.944671946515855), FRAC_CONST(0.328016635959131)}, {FRAC_CONST(0.943593458161960), FRAC_CONST(0.331106305759876)}, {FRAC_CONST(0.942504864680205), FRAC_CONST(0.334192429678095)},
    {FRAC_CONST(0.941406177728551), FRAC_CONST(0.337274974663880)}, {FRAC_CONST(0.940297409073052), FRAC_CONST(0.340353907705650)}, {FRAC_CONST(0.939178570587730), FRAC_CONST(0.343429195830507)},
    {FRAC_CONST(0.938049674254446), FRAC_CONST(0.346500806104585)}, {FRAC_CONST(0.936910732162774), FRAC_CONST(0.349568705633406)}, {FRAC_CONST(0.935761756509868), FRAC_CONST(0.352632861562230)},
    {FRAC_CONST(0.934602759600334), FRAC_CONST(0.355693241076410)}, {FRAC_CONST(0.933433753846097), FRAC_CONST(0.358749811401739)}, {FRAC_CONST(0.932254751766271), FRAC_CONST(0.361802539804806)},
    {FRAC_CONST(0.931065765987021), FRAC_CONST(0.364851393593340)}, {FRAC_CONST(0.929866809241428), FRAC_CONST(0.367896340116568)}, {FRAC_CONST(0.928657894369357), FRAC_CONST(0.370937346765559)},
    {FRAC_CONST(0.927439034317314), FRAC_CONST(0.373974380973575)}, {FRAC_CONST(0.926210242138311), FRAC_CONST(0.377007410216418)}, {FRAC_CONST(0.924971530991726), FRAC_CONST(0.380036402012783)},
    {FRAC_CONST(0.923722914143160), FRAC_CONST(0.383061323924602)}, {FRAC_CONST(0.922464404964295), FRAC_CONST(0.386082143557389)}, {FRAC_CONST(0.921196016932755), FRAC_CONST(0.389098828560595)},
    {FRAC_CONST(0.919917763631956), FRAC_CONST(0.392111346627946)}, {FRAC_CONST(0.918629658750963), FRAC_CONST(0.395119665497795)}, {FRAC_CONST(0.917331716084346), FRAC_CONST(0.398123752953462)},
    {FRAC_CONST(0.916023949532027), FRAC_CONST(0.401123576823585)}, {FRAC_CONST(0.914706373099136), FRAC_CONST(0.404119104982459)}, {FRAC_CONST(0.913379000895858), FRAC_CONST(0.407110305350386)},
    {FRAC_CONST(0.912041847137282), FRAC_CONST(0.410097145894012)}, {FRAC_CONST(0.910694926143251), FRAC_CONST(0.413079594626675)}, {FRAC_CONST(0.909338252338207), FRAC_CONST(0.416057619608744)},
    {FRAC_CONST(0.907971840251037), FRAC_CONST(0.419031188947965)}, {FRAC_CONST(0.906595704514915), FRAC_CONST(0.422000270799800)}, {FRAC_CONST(0.905209859867151), FRAC_CONST(0.424964833367766)},
    {FRAC_CONST(0.903814321149027), FRAC_CONST(0.427924844903780)}, {FRAC_CONST(0.902409103305641), FRAC_CONST(0.430880273708497)}, {FRAC_CONST(0.900994221385748), FRAC_CONST(0.433831088131649)},
    {FRAC_CONST(0.899569690541596), FRAC_CONST(0.436777256572384)}, {FRAC_CONST(0.898135526028766), FRAC_CONST(0.439718747479604)}, {FRAC_CONST(0.896691743206008), FRAC_CONST(0.442655529352306)},
    {FRAC_CONST(0.895238357535076), FRAC_CONST(0.445587570739915)}, {FRAC_CONST(0.893775384580563), FRAC_CONST(0.448514840242624)}, {FRAC_CONST(0.892302840009734), FRAC_CONST(0.451437306511726)},
    {FRAC_CONST(0.890820739592359), FRAC_CONST(0.454354938249958)}, {FRAC_CONST(0.889329099200541), FRAC_CONST(0.457267704211826)}, {FRAC_CONST(0.887827934808551), FRAC_CONST(0.460175573203949)},
    {FRAC_CONST(0.886317262492655), FRAC_CONST(0.463078514085383)}, {FRAC_CONST(0.884797098430938), FRAC_CONST(0.465976495767966)}, {FRAC_CONST(0.883267458903136), FRAC_CONST(0.468869487216642)},
    {FRAC_CONST(0.881728360290461), FRAC_CONST(0.471757457449795)}, {FRAC_CONST(0.880179819075421), FRAC_CONST(0.474640375539586)}, {FRAC_CONST(0.878621851841649), FRAC_CONST(0.477518210612278)},
    {FRAC_CONST(0.877054475273722), FRAC_CONST(0.480390931848569)}, {FRAC_CONST(0.875477706156984), FRAC_CONST(0.483258508483922)}, {FRAC_CONST(0.873891561377366), FRAC_CONST(0.486120909808896)},
    {FRAC_CONST(0.872296057921204), FRAC_CONST(0.488978105169472)}, {FRAC_CONST(0.870691212875058), FRAC_CONST(0.491830063967383)}, {FRAC_CONST(0.869077043425529), FRAC_CONST(0.494676755660442)},
    {FRAC_CONST(0.867453566859076), FRAC_CONST(0.497518149762867)}, {FRAC_CONST(0.865820800561827), FRAC_CONST(0.500354215845611)}, {FRAC_CONST(0.864178762019399), FRAC_CONST(0.503184923536685)},
    {FRAC_CONST(0.862527468816704), FRAC_CONST(0.506010242521482)}, {FRAC_CONST(0.860866938637767), FRAC_CONST(0.508830142543107)}, {FRAC_CONST(0.859197189265532), FRAC_CONST(0.511644593402696)},
    {FRAC_CONST(0.857518238581672), FRAC_CONST(0.514453564959741)}, {FRAC_CONST(0.855830104566401), FRAC_CONST(0.517257027132414)}, {FRAC_CONST(0.854132805298278), FRAC_CONST(0.520054949897887)},
    {FRAC_CONST(0.852426358954015), FRAC_CONST(0.522847303292655)}, {FRAC_CONST(0.850710783808280), FRAC_CONST(0.525634057412856)}, {FRAC_CONST(0.848986098233506), FRAC_CONST(0.528415182414593)},
    {FRAC_CONST(0.847252320699689), FRAC_CONST(0.531190648514252)}, {FRAC_CONST(0.845509469774194), FRAC_CONST(0.533960425988819)}, {FRAC_CONST(0.843757564121554), FRAC_CONST(0.536724485176205)},
    {FRAC_CONST(0.841996622503271), FRAC_CONST(0.539482796475555)}, {FRAC_CONST(0.840226663777615), FRAC_CONST(0.542235330347571)}, {FRAC_CONST(0.838447706899422), FRAC_CONST(0.544982057314827)},
    {FRAC_CONST(0.836659770919891), FRAC_CONST(0.547722947962084)}, {FRAC_CONST(0.834862874986380), FRAC_CONST(0.550457972936605)}, {FRAC_CONST(0.833057038342201), FRAC_CONST(0.553187102948470)},
    {FRAC_CONST(0.831242280326413), FRAC_CONST(0.555910308770889)}, {FRAC_CONST(0.829418620373617), FRAC_CONST(0.558627561240515)}, {FRAC_CONST(0.827586078013746), FRAC_CONST(0.561338831257758)},
    {FRAC_CONST(0.825744672871856), FRAC_CONST(0.564044089787093)}, {FRAC_CONST(0.823894424667918), FRAC_CONST(0.566743307857377)}, {FRAC_CONST(0.822035353216601), FRAC_CONST(0.569436456562150)},
    {FRAC_CONST(0.820167478427070), FRAC_CONST(0.572123507059955)}, {FRAC_CONST(0.818290820302761), FRAC_CONST(0.574804430574639)}, {FRAC_CONST(0.816405398941175), FRAC_CONST(0.577479198395666)},
    {FRAC_CONST(0.814511234533661), FRAC_CONST(0.580147781878420)}, {FRAC_CONST(0.812608347365198), FRAC_CONST(0.582810152444517)}, {FRAC_CONST(0.810696757814178), FRAC_CONST(0.585466281582107)},
    {FRAC_CONST(0.808776486352191), FRAC_CONST(0.588116140846181)}, {FRAC_CONST(0.806847553543799), FRAC_CONST(0.590759701858874)}, {FRAC_CONST(0.804909980046325), FRAC_CONST(0.593396936309773)},
    {FRAC_CONST(0.802963786609623), FRAC_CONST(0.596027815956215)}, {FRAC_CONST(0.801008994075862), FRAC_CONST(0.598652312623592)}, {FRAC_CONST(0.799045623379300), FRAC_CONST(0.601270398205654)},
    {FRAC_CONST(0.797073695546059), FRAC_CONST(0.603882044664808)}, {FRAC_CONST(0.795093231693901), FRAC_CONST(0.606487224032418)}, {FRAC_CONST(0.793104253032005), FRAC_CONST(0.609085908409106)},
    {FRAC_CONST(0.791106780860733), FRAC_CONST(0.611678069965050)}, {FRAC_CONST(0.789100836571407), FRAC_CONST(0.614263680940283)}, {FRAC_CONST(0.787086441646080), FRAC_CONST(0.616842713644988)},
    {FRAC_CONST(0.785063617657302), FRAC_CONST(0.619415140459796)}, {FRAC_CONST(0.783032386267894), FRAC_CONST(0.621980933836084)}, {FRAC_CONST(0.780992769230711), FRAC_CONST(0.624540066296266)},
    {FRAC_CONST(0.778944788388414), FRAC_CONST(0.627092510434089)}, {FRAC_CONST(0.776888465673232), FRAC_CONST(0.629638238914927)}, {FRAC_CONST(0.774823823106730), FRAC_CONST(0.632177224476073)},
    {FRAC_CONST(0.772750882799570), FRAC_CONST(0.634709439927031)}, {FRAC_CONST(0.770669666951277), FRAC_CONST(0.637234858149809)}, {FRAC_CONST(0.768580197850002), FRAC_CONST(0.639753452099206)},
    {FRAC_CONST(0.766482497872280), FRAC_CONST(0.642265194803105)}, {FRAC_CONST(0.764376589482793), FRAC_CONST(0.644770059362758)}, {FRAC_CONST(0.762262495234126), FRAC_CONST(0.647268018953079)},
    {FRAC_CONST(0.760140237766532), FRAC_CONST(0.649759046822928)}, {FRAC_CONST(0.758009839807683), FRAC_CONST(0.652243116295397)}, {FRAC_CONST(0.755871324172429), FRAC_CONST(0.654720200768098)},
    {FRAC_CONST(0.753724713762555), FRAC_CONST(0.657190273713446)}, {FRAC_CONST(0.751570031566534), FRAC_CONST(0.659653308678945)}, {FRAC_CONST(0.749407300659280), FRAC_CONST(0.662109279287469)},
    {FRAC_CONST(0.747236544201905), FRAC_CONST(0.664558159237545)}, {FRAC_CONST(0.745057785441466), FRAC_CONST(0.666999922303638)}, {FRAC_CONST(0.742871047710719), FRAC_CONST(0.669434542336425)},
    {FRAC_CONST(0.740676354427868), FRAC_CONST(0.671861993263083)}, {FRAC_CONST(0.738473729096316), FRAC_CONST(0.674282249087562)}, {FRAC_CONST(0.736263195304409), FRAC_CONST(0.676695283890867)},
    {FRAC_CONST(0.734044776725190), FRAC_CONST(0.679101071831334)}, {FRAC_CONST(0.731818497116138), FRAC_CONST(0.681499587144906)}, {FRAC_CONST(0.729584380318920), FRAC_CONST(0.683890804145412)},
    {FRAC_CONST(0.727342450259131), FRAC_CONST(0.686274697224838)}, {FRAC_CONST(0.725092730946042), FRAC_CONST(0.688651240853606)}, {FRAC_CONST(0.722835246472338), FRAC_CONST(0.691020409580841)},
    {FRAC_CONST(0.720570021013866), FRAC_CONST(0.693382178034651)}, {FRAC_CONST(0.718297078829369), FRAC_CONST(0.695736520922392)}, {FRAC_CONST(0.716016444260233), FRAC_CONST(0.698083413030944)},
    {FRAC_CONST(0.713728141730222), FRAC_CONST(0.700422829226978)}, {FRAC_CONST(0.711432195745216), FRAC_CONST(0.702754744457225)}, {FRAC_CONST(0.709128630892954), FRAC_CONST(0.705079133748748)},
    {FRAC_CONST(0.706817471842764), FRAC_CONST(0.707395972209203)}, {FRAC_CONST(0.704498743345302), FRAC_CONST(0.709705235027113)}, {FRAC_CONST(0.702172470232289), FRAC_CONST(0.712006897472128)},
    {FRAC_CONST(0.699838677416240), FRAC_CONST(0.714300934895292)}, {FRAC_CONST(0.697497389890200), FRAC_CONST(0.716587322729308)}, {FRAC_CONST(0.695148632727480), FRAC_CONST(0.718866036488799)},
    {FRAC_CONST(0.692792431081381), FRAC_CONST(0.721137051770570)}, {FRAC_CONST(0.690428810184929), FRAC_CONST(0.723400344253874)}, {FRAC_CONST(0.688057795350606), FRAC_CONST(0.725655889700665)},
    {FRAC_CONST(0.685679411970075), FRAC_CONST(0.727903663955865)}, {FRAC_CONST(0.683293685513912), FRAC_CONST(0.730143642947616)}, {FRAC_CONST(0.680900641531330), FRAC_CONST(0.732375802687543)},
    {FRAC_CONST(0.678500305649909), FRAC_CONST(0.734600119271009)}, {FRAC_CONST(0.676092703575316), FRAC_CONST(0.736816568877370)}, {FRAC_CONST(0.673677861091036), FRAC_CONST(0.739025127770231)},
    {FRAC_CONST(0.671255804058092), FRAC_CONST(0.741225772297702)}, {FRAC_CONST(0.668826558414768), FRAC_CONST(0.743418478892647)}, {FRAC_CONST(0.666390150176334), FRAC_CONST(0.745603224072940)},
    {FRAC_CONST(0.663946605434765), FRAC_CONST(0.747779984441716)}, {FRAC_CONST(0.661495950358462), FRAC_CONST(0.749948736687619)}, {FRAC_CONST(0.659038211191971), FRAC_CONST(0.752109457585056)},
    {FRAC_CONST(0.656573414255705), FRAC_CONST(0.754262123994441)}, {FRAC_CONST(0.654101585945659), FRAC_CONST(0.756406712862448)}, {FRAC_CONST(0.651622752733128), FRAC_CONST(0.758543201222251)},
    {FRAC_CONST(0.649136941164425), FRAC_CONST(0.760671566193777)}, {FRAC_CONST(0.646644177860593), FRAC_CONST(0.762791784983948)}, {FRAC_CONST(0.644144489517126), FRAC_CONST(0.764903834886923)},
    {FRAC_CONST(0.641637902903677), FRAC_CONST(0.767007693284345)}, {FRAC_CONST(0.639124444863776), FRAC_CONST(0.769103337645580)}, {FRAC_CONST(0.636604142314538), FRAC_CONST(0.771190745527961)},
    {FRAC_CONST(0.634077022246379), FRAC_CONST(0.773269894577026)}, {FRAC_CONST(0.631543111722725), FRAC_CONST(0.775340762526760)}, {FRAC_CONST(0.629002437879721), FRAC_CONST(0.777403327199831)},
    {FRAC_CONST(0.626455027925944), FRAC_CONST(0.779457566507828)}, {FRAC_CONST(0.623900909142107), FRAC_CONST(0.781503458451498)}, {FRAC_CONST(0.621340108880771), FRAC_CONST(0.783540981120982)},
    {FRAC_CONST(0.618772654566049), FRAC_CONST(0.785570112696050)}, {FRAC_CONST(0.616198573693314), FRAC_CONST(0.787590831446332)}, {FRAC_CONST(0.613617893828905), FRAC_CONST(0.789603115731555)},
    {FRAC_CONST(0.611030642609828), FRAC_CONST(0.791606944001769)}, {FRAC_CONST(0.608436847743468), FRAC_CONST(0.793602294797585)}, {FRAC_CONST(0.605836537007281), FRAC_CONST(0.795589146750397)},
    {FRAC_CONST(0.603229738248508), FRAC_CONST(0.797567478582619)}, {FRAC_CONST(0.600616479383869), FRAC_CONST(0.799537269107905)}, {FRAC_CONST(0.597996788399267), FRAC_CONST(0.801498497231381)},
    {FRAC_CONST(0.595370693349487), FRAC_CONST(0.803451141949871)}, {FRAC_CONST(0.592738222357898), FRAC_CONST(0.805395182352117)}, {FRAC_CONST(0.590099403616149), FRAC_CONST(0.807330597619008)},
    {FRAC_CONST(0.587454265383869), FRAC_CONST(0.809257367023803)}, {FRAC_CONST(0.584802835988364), FRAC_CONST(0.811175469932349)}, {FRAC_CONST(0.582145143824311), FRAC_CONST(0.813084885803304)},
    {FRAC_CONST(0.579481217353460), FRAC_CONST(0.814985594188359)}, {FRAC_CONST(0.576811085104321), FRAC_CONST(0.816877574732454)}, {FRAC_CONST(0.574134775671867), FRAC_CONST(0.818760807173997)},
    {FRAC_CONST(0.571452317717222), FRAC_CONST(0.820635271345081)}, {FRAC_CONST(0.568763739967354), FRAC_CONST(0.822500947171703)}, {FRAC_CONST(0.566069071214772), FRAC_CONST(0.824357814673971)},
    {FRAC_CONST(0.563368340317214), FRAC_CONST(0.826205853966327)}, {FRAC_CONST(0.560661576197336), FRAC_CONST(0.828045045257756)}, {FRAC_CONST(0.557948807842409), FRAC_CONST(0.829875368851995)},
    {FRAC_CONST(0.555230064304002), FRAC_CONST(0.831696805147750)}, {FRAC_CONST(0.552505374697674), FRAC_CONST(0.833509334638900)}, {FRAC_CONST(0.549774768202663), FRAC_CONST(0.835312937914713)},
    {FRAC_CONST(0.547038274061568), FRAC_CONST(0.837107595660044)}, {FRAC_CONST(0.544295921580046), FRAC_CONST(0.838893288655553)}, {FRAC_CONST(0.541547740126486), FRAC_CONST(0.840669997777901)},
    {FRAC_CONST(0.538793759131706), FRAC_CONST(0.842437703999961)}, {FRAC_CONST(0.536034008088628), FRAC_CONST(0.844196388391019)}, {FRAC_CONST(0.533268516551970), FRAC_CONST(0.845946032116980)},
    {FRAC_CONST(0.530497314137923), FRAC_CONST(0.847686616440563)}, {FRAC_CONST(0.527720430523840), FRAC_CONST(0.849418122721510)}, {FRAC_CONST(0.524937895447912), FRAC_CONST(0.851140532416778)},
    {FRAC_CONST(0.522149738708856), FRAC_CONST(0.852853827080745)}, {FRAC_CONST(0.519355990165590), FRAC_CONST(0.854557988365401)}, {FRAC_CONST(0.516556679736915), FRAC_CONST(0.856252998020546)},
    {FRAC_CONST(0.513751837401199), FRAC_CONST(0.857938837893991)}, {FRAC_CONST(0.510941493196049), FRAC_CONST(0.859615489931744)}, {FRAC_CONST(0.508125677217994), FRAC_CONST(0.861282936178208)},
    {FRAC_CONST(0.505304419622159), FRAC_CONST(0.862941158776375)}, {FRAC_CONST(0.502477750621949), FRAC_CONST(0.864590139968012)}, {FRAC_CONST(0.499645700488717), FRAC_CONST(0.866229862093855)},
    {FRAC_CONST(0.496808299551444), FRAC_CONST(0.867860307593799)}, {FRAC_CONST(0.493965578196415), FRAC_CONST(0.869481459007080)}, {FRAC_CONST(0.491117566866892), FRAC_CONST(0.871093298972471)},
    {FRAC_CONST(0.488264296062789), FRAC_CONST(0.872695810228461)}, {FRAC_CONST(0.485405796340343), FRAC_CONST(0.874288975613440)}, {FRAC_CONST(0.482542098311789), FRAC_CONST(0.875872778065888)},
    {FRAC_CONST(0.479673232645033), FRAC_CONST(0.877447200624553)}, {FRAC_CONST(0.476799230063322), FRAC_CONST(0.879012226428633)}, {FRAC_CONST(0.473920121344914), FRAC_CONST(0.880567838717962)},
    {FRAC_CONST(0.471035937322751), FRAC_CONST(0.882114020833179)}, {FRAC_CONST(0.468146708884125), FRAC_CONST(0.883650756215917)}, {FRAC_CONST(0.465252466970353), FRAC_CONST(0.885178028408975)},
    {FRAC_CONST(0.462353242576441), FRAC_CONST(0.886695821056495)}, {FRAC_CONST(0.459449066750752), FRAC_CONST(0.888204117904136)}, {FRAC_CONST(0.456539970594675), FRAC_CONST(0.889702902799251)},
    {FRAC_CONST(0.453625985262295), FRAC_CONST(0.891192159691058)}, {FRAC_CONST(0.450707141960053), FRAC_CONST(0.892671872630812)}, {FRAC_CONST(0.447783471946415), FRAC_CONST(0.894142025771977)},
    {FRAC_CONST(0.444855006531538), FRAC_CONST(0.895602603370393)}, {FRAC_CONST(0.441921777076935), FRAC_CONST(0.897053589784447)}, {FRAC_CONST(0.438983814995137), FRAC_CONST(0.898494969475242)},
    {FRAC_CONST(0.436041151749356), FRAC_CONST(0.899926727006758)}, {FRAC_CONST(0.433093818853152), FRAC_CONST(0.901348847046022)}, {FRAC_CONST(0.430141847870093), FRAC_CONST(0.902761314363272)},
    {FRAC_CONST(0.427185270413416), FRAC_CONST(0.904164113832116)}, {FRAC_CONST(0.424224118145690), FRAC_CONST(0.905557230429701)}, {FRAC_CONST(0.421258422778478), FRAC_CONST(0.906940649236866)},
    {FRAC_CONST(0.418288216071994), FRAC_CONST(0.908314355438308)}, {FRAC_CONST(0.415313529834766), FRAC_CONST(0.909678334322736)}, {FRAC_CONST(0.412334395923293), FRAC_CONST(0.911032571283032)},
    {FRAC_CONST(0.409350846241706), FRAC_CONST(0.912377051816407)}, {FRAC_CONST(0.406362912741425), FRAC_CONST(0.913711761524555)}, {FRAC_CONST(0.403370627420818), FRAC_CONST(0.915036686113806)},
    {FRAC_CONST(0.400374022324857), FRAC_CONST(0.916351811395282)}, {FRAC_CONST(0.397373129544774), FRAC_CONST(0.917657123285050)}, {FRAC_CONST(0.394367981217720), FRAC_CONST(0.918952607804266)},
    {FRAC_CONST(0.391358609526420), FRAC_CONST(0.920238251079332)}, {FRAC_CONST(0.388345046698826), FRAC_CONST(0.921514039342042)}, {FRAC_CONST(0.385327325007776), FRAC_CONST(0.922779958929729)},
    {FRAC_CONST(0.382305476770645), FRAC_CONST(0.924035996285410)}, {FRAC_CONST(0.379279534348999), FRAC_CONST(0.925282137957935)}, {FRAC_CONST(0.376249530148250), FRAC_CONST(0.926518370602127)},
    {FRAC_CONST(0.373215496617310), FRAC_CONST(0.927744680978929)}, {FRAC_CONST(0.370177466248239), FRAC_CONST(0.928961055955541)}, {FRAC_CONST(0.367135471575903), FRAC_CONST(0.930167482505564)},
    {FRAC_CONST(0.364089545177621), FRAC_CONST(0.931363947709140)}, {FRAC_CONST(0.361039719672816), FRAC_CONST(0.932550438753087)}, {FRAC_CONST(0.357986027722671), FRAC_CONST(0.933726942931039)},
    {FRAC_CONST(0.354928502029772), FRAC_CONST(0.934893447643582)}, {FRAC_CONST(0.351867175337763), FRAC_CONST(0.936049940398387)}, {FRAC_CONST(0.348802080430994), FRAC_CONST(0.937196408810347)},
    {FRAC_CONST(0.345733250134169), FRAC_CONST(0.938332840601705)}, {FRAC_CONST(0.342660717311994), FRAC_CONST(0.939459223602190)}, {FRAC_CONST(0.339584514868829), FRAC_CONST(0.940575545749145)},
    {FRAC_CONST(0.336504675748328), FRAC_CONST(0.941681795087657)}, {FRAC_CONST(0.333421232933097), FRAC_CONST(0.942777959770684)}, {FRAC_CONST(0.330334219444328), FRAC_CONST(0.943864028059183)},
    {FRAC_CONST(0.327243668341457), FRAC_CONST(0.944939988322235)}, {FRAC_CONST(0.324149612721804), FRAC_CONST(0.946005829037171)}, {FRAC_CONST(0.321052085720218), FRAC_CONST(0.947061538789691)},
    {FRAC_CONST(0.317951120508725), FRAC_CONST(0.948107106273994)}, {FRAC_CONST(0.314846750296171), FRAC_CONST(0.949142520292891)}, {FRAC_CONST(0.311739008327867), FRAC_CONST(0.950167769757930)},
    {FRAC_CONST(0.308627927885232), FRAC_CONST(0.951182843689513)}, {FRAC_CONST(0.305513542285440), FRAC_CONST(0.952187731217013)}, {FRAC_CONST(0.302395884881056), FRAC_CONST(0.953182421578893)},
    {FRAC_CONST(0.299274989059689), FRAC_CONST(0.954166904122818)}, {FRAC_CONST(0.296150888243624), FRAC_CONST(0.955141168305771)}, {FRAC_CONST(0.293023615889471), FRAC_CONST(0.956105203694164)},
    {FRAC_CONST(0.289893205487806), FRAC_CONST(0.957058999963955)}, {FRAC_CONST(0.286759690562807), FRAC_CONST(0.958002546900750)}, {FRAC_CONST(0.283623104671904), FRAC_CONST(0.958935834399920)},
    {FRAC_CONST(0.280483481405410), FRAC_CONST(0.959858852466706)}, {FRAC_CONST(0.277340854386169), FRAC_CONST(0.960771591216325)}, {FRAC_CONST(0.274195257269191), FRAC_CONST(0.961674040874080)},
    {FRAC_CONST(0.271046723741295), FRAC_CONST(0.962566191775459)}, {FRAC_CONST(0.267895287520743), FRAC_CONST(0.963448034366243)}, {FRAC_CONST(0.264740982356888), FRAC_CONST(0.964319559202607)},
    {FRAC_CONST(0.261583842029803), FRAC_CONST(0.965180756951218)}, {FRAC_CONST(0.258423900349924), FRAC_CONST(0.966031618389343)}, {FRAC_CONST(0.255261191157689), FRAC_CONST(0.966872134404937)},
    {FRAC_CONST(0.252095748323171), FRAC_CONST(0.967702295996750)}, {FRAC_CONST(0.248927605745720), FRAC_CONST(0.968522094274417)}, {FRAC_CONST(0.245756797353599), FRAC_CONST(0.969331520458559)},
    {FRAC_CONST(0.242583357103617), FRAC_CONST(0.970130565880871)}, {FRAC_CONST(0.239407318980770), FRAC_CONST(0.970919221984218)}, {FRAC_CONST(0.236228716997876), FRAC_CONST(0.971697480322728)},
    {FRAC_CONST(0.233047585195206), FRAC_CONST(0.972465332561878)}, {FRAC_CONST(0.229863957640129), FRAC_CONST(0.973222770478587)}, {FRAC_CONST(0.226677868426735), FRAC_CONST(0.973969785961306)},
    {FRAC_CONST(0.223489351675482), FRAC_CONST(0.974706371010097)}, {FRAC_CONST(0.220298441532823), FRAC_CONST(0.975432517736727)}, {FRAC_CONST(0.217105172170841), FRAC_CONST(0.976148218364747)},
    {FRAC_CONST(0.213909577786886), FRAC_CONST(0.976853465229579)}, {FRAC_CONST(0.210711692603206), FRAC_CONST(0.977548250778596)}, {FRAC_CONST(0.207511550866582), FRAC_CONST(0.978232567571202)},
    {FRAC_CONST(0.204309186847962), FRAC_CONST(0.978906408278914)}, {FRAC_CONST(0.201104634842092), FRAC_CONST(0.979569765685441)}, {FRAC_CONST(0.197897929167148), FRAC_CONST(0.980222632686756)},
    {FRAC_CONST(0.194689104164373), FRAC_CONST(0.980865002291179)}, {FRAC_CONST(0.191478194197704), FRAC_CONST(0.981496867619447)}, {FRAC_CONST(0.188265233653407), FRAC_CONST(0.982118221904791)},
    {FRAC_CONST(0.185050256939710), FRAC_CONST(0.982729058493005)}, {FRAC_CONST(0.181833298486427), FRAC_CONST(0.983329370842520)}, {FRAC_CONST(0.178614392744603), FRAC_CONST(0.983919152524473)},
    {FRAC_CONST(0.175393574186129), FRAC_CONST(0.984498397222776)}, {FRAC_CONST(0.172170877303385), FRAC_CONST(0.985067098734184)}, {FRAC_CONST(0.168946336608867), FRAC_CONST(0.985625250968360)},
    {FRAC_CONST(0.165719986634814), FRAC_CONST(0.986172847947943)}, {FRAC_CONST(0.162491861932842), FRAC_CONST(0.986709883808609)}, {FRAC_CONST(0.159261997073573), FRAC_CONST(0.987236352799134)},
    {FRAC_CONST(0.156030426646266), FRAC_CONST(0.987752249281460)}, {FRAC_CONST(0.152797185258443), FRAC_CONST(0.988257567730749)}, {FRAC_CONST(0.149562307535523), FRAC_CONST(0.988752302735447)},
    {FRAC_CONST(0.146325828120446), FRAC_CONST(0.989236448997339)}, {FRAC_CONST(0.143087781673307), FRAC_CONST(0.989710001331608)}, {FRAC_CONST(0.139848202870981), FRAC_CONST(0.990172954666889)},
    {FRAC_CONST(0.136607126406757), FRAC_CONST(0.990625304045323)}, {FRAC_CONST(0.133364586989957), FRAC_CONST(0.991067044622612)}, {FRAC_CONST(0.130120619345575), FRAC_CONST(0.991498171668069)},
    {FRAC_CONST(0.126875258213898), FRAC_CONST(0.991918680564670)}, {FRAC_CONST(0.123628538350136), FRAC_CONST(0.992328566809103)}, {FRAC_CONST(0.120380494524051), FRAC_CONST(0.992727826011815)},
    {FRAC_CONST(0.117131161519582), FRAC_CONST(0.993116453897061)}, {FRAC_CONST(0.113880574134475), FRAC_CONST(0.993494446302948)}, {FRAC_CONST(0.110628767179910), FRAC_CONST(0.993861799181482)},
    {FRAC_CONST(0.107375775480128), FRAC_CONST(0.994218508598608)}, {FRAC_CONST(0.104121633872055), FRAC_CONST(0.994564570734255)}, {FRAC_CONST(0.100866377204933), FRAC_CONST(0.994899981882376)},
    {FRAC_CONST(0.097610040339947), FRAC_CONST(0.995224738450986)}, {FRAC_CONST(0.094352658149849), FRAC_CONST(0.995538836962204)}, {FRAC_CONST(0.091094265518583), FRAC_CONST(0.995842274052287)},
    {FRAC_CONST(0.087834897340919), FRAC_CONST(0.996135046471667)}, {FRAC_CONST(0.084574588522070), FRAC_CONST(0.996417151084987)}, {FRAC_CONST(0.081313373977324), FRAC_CONST(0.996688584871134)},
    {FRAC_CONST(0.078051288631670), FRAC_CONST(0.996949344923269)}, {FRAC_CONST(0.074788367419420), FRAC_CONST(0.997199428448862)}, {FRAC_CONST(0.071524645283840), FRAC_CONST(0.997438832769720)},
    {FRAC_CONST(0.068260157176771), FRAC_CONST(0.997667555322013)}, {FRAC_CONST(0.064994938058259), FRAC_CONST(0.997885593656308)}, {FRAC_CONST(0.061729022896176), FRAC_CONST(0.998092945437590)},
    {FRAC_CONST(0.058462446665851), FRAC_CONST(0.998289608445286)}, {FRAC_CONST(0.055195244349690), FRAC_CONST(0.998475580573295)}, {FRAC_CONST(0.051927450936806), FRAC_CONST(0.998650859830004)},
    {FRAC_CONST(0.048659101422640), FRAC_CONST(0.998815444338313)}, {FRAC_CONST(0.045390230808591), FRAC_CONST(0.998969332335654)}, {FRAC_CONST(0.042120874101635), FRAC_CONST(0.999112522174011)},
    {FRAC_CONST(0.038851066313958), FRAC_CONST(0.999245012319936)}, {FRAC_CONST(0.035580842462574), FRAC_CONST(0.999366801354564)}, {FRAC_CONST(0.032310237568951), FRAC_CONST(0.999477887973635)},
    {FRAC_CONST(0.029039286658643), FRAC_CONST(0.999578270987499)}, {FRAC_CONST(0.025768024760904), FRAC_CONST(0.999667949321134)}, {FRAC_CONST(0.022496486908322), FRAC_CONST(0.999746922014158)},
    {FRAC_CONST(0.019224708136438), FRAC_CONST(0.999815188220837)}, {FRAC_CONST(0.015952723483375), FRAC_CONST(0.999872747210095)}, {FRAC_CONST(0.012680567989461), FRAC_CONST(0.999919598365521)},
    {FRAC_CONST(0.009408276696850), FRAC_CONST(0.999955741185376)}, {FRAC_CONST(0.006135884649155), FRAC_CONST(0.999981175282601)}, {FRAC_CONST(0.002863426891064), FRAC_CONST(0.999995900384816)}};

    #ifdef LD_DEC
/* 240 (N/4) complex twiddle factors */
 const complex_t mdct_tab_960[] = {
    {FRAC_CONST(0.999999665337326), FRAC_CONST(0.000818122995607)}, {FRAC_CONST(0.999972892444367), FRAC_CONST(0.007363041249780)}, {FRAC_CONST(0.999903284040864), FRAC_CONST(0.013907644095771)},
    {FRAC_CONST(0.999790843108610), FRAC_CONST(0.020451651184577)}, {FRAC_CONST(0.999635574464198), FRAC_CONST(0.026994782192715)}, {FRAC_CONST(0.999437484758823), FRAC_CONST(0.033536756834230)},
    {FRAC_CONST(0.999196582477986), FRAC_CONST(0.040077294872701)}, {FRAC_CONST(0.998912877941140), FRAC_CONST(0.046616116133247)}, {FRAC_CONST(0.998586383301244), FRAC_CONST(0.053152940514528)},
    {FRAC_CONST(0.998217112544241), FRAC_CONST(0.059687488000744)}, {FRAC_CONST(0.997805081488460), FRAC_CONST(0.066219478673630)}, {FRAC_CONST(0.997350307783942), FRAC_CONST(0.072748632724445)},
    {FRAC_CONST(0.996852810911678), FRAC_CONST(0.079274670465961)}, {FRAC_CONST(0.996312612182778), FRAC_CONST(0.085797312344440)}, {FRAC_CONST(0.995729734737558), FRAC_CONST(0.092316278951614)},
    {FRAC_CONST(0.995104203544548), FRAC_CONST(0.098831291036650)}, {FRAC_CONST(0.994436045399422), FRAC_CONST(0.105342069518114)}, {FRAC_CONST(0.993725288923851), FRAC_CONST(0.111848335495926)},
    {FRAC_CONST(0.992971964564277), FRAC_CONST(0.118349810263305)}, {FRAC_CONST(0.992176104590608), FRAC_CONST(0.124846215318711)}, {FRAC_CONST(0.991337743094838), FRAC_CONST(0.131337272377774)},
    {FRAC_CONST(0.990456915989581), FRAC_CONST(0.137822703385212)}, {FRAC_CONST(0.989533661006540), FRAC_CONST(0.144302230526747)}, {FRAC_CONST(0.988568017694885), FRAC_CONST(0.150775576241001)},
    {FRAC_CONST(0.987560027419562), FRAC_CONST(0.157242463231389)}, {FRAC_CONST(0.986509733359519), FRAC_CONST(0.163702614477995)}, {FRAC_CONST(0.985417180505858), FRAC_CONST(0.170155753249442)},
    {FRAC_CONST(0.984282415659907), FRAC_CONST(0.176601603114742)}, {FRAC_CONST(0.983105487431216), FRAC_CONST(0.183039887955141)}, {FRAC_CONST(0.981886446235473), FRAC_CONST(0.189470331975943)},
    {FRAC_CONST(0.980625344292344), FRAC_CONST(0.195892659718330)}, {FRAC_CONST(0.979322235623241), FRAC_CONST(0.202306596071156)}, {FRAC_CONST(0.977977176049000), FRAC_CONST(0.208711866282735)},
    {FRAC_CONST(0.976590223187499), FRAC_CONST(0.215108195972610)}, {FRAC_CONST(0.975161436451181), FRAC_CONST(0.221495311143304)}, {FRAC_CONST(0.973690877044515), FRAC_CONST(0.227872938192063)},
    {FRAC_CONST(0.972178607961371), FRAC_CONST(0.234240803922570)}, {FRAC_CONST(0.970624693982323), FRAC_CONST(0.240598635556650)}, {FRAC_CONST(0.969029201671875), FRAC_CONST(0.246946160745958)},
    {FRAC_CONST(0.967392199375607), FRAC_CONST(0.253283107583640)}, {FRAC_CONST(0.965713757217249), FRAC_CONST(0.259609204615985)}, {FRAC_CONST(0.963993947095677), FRAC_CONST(0.265924180854051)},
    {FRAC_CONST(0.962232842681832), FRAC_CONST(0.272227765785273)}, {FRAC_CONST(0.960430519415566), FRAC_CONST(0.278519689385053)}, {FRAC_CONST(0.958587054502409), FRAC_CONST(0.284799682128326)},
    {FRAC_CONST(0.956702526910263), FRAC_CONST(0.291067475001103)}, {FRAC_CONST(0.954777017366017), FRAC_CONST(0.297322799511998)}, {FRAC_CONST(0.952810608352092), FRAC_CONST(0.303565387703730)},
    {FRAC_CONST(0.950803384102905), FRAC_CONST(0.309794972164597)}, {FRAC_CONST(0.948755430601263), FRAC_CONST(0.316011286039934)}, {FRAC_CONST(0.946666835574676), FRAC_CONST(0.322214063043544)},
    {FRAC_CONST(0.944537688491606), FRAC_CONST(0.328403037469105)}, {FRAC_CONST(0.942368080557626), FRAC_CONST(0.334577944201551)}, {FRAC_CONST(0.940158104711519), FRAC_CONST(0.340738518728429)},
    {FRAC_CONST(0.937907855621296), FRAC_CONST(0.346884497151231)}, {FRAC_CONST(0.935617429680138), FRAC_CONST(0.353015616196696)}, {FRAC_CONST(0.933286925002268), FRAC_CONST(0.359131613228090)},
    {FRAC_CONST(0.930916441418752), FRAC_CONST(0.365232226256457)}, {FRAC_CONST(0.928506080473216), FRAC_CONST(0.371317193951838)}, {FRAC_CONST(0.926055945417500), FRAC_CONST(0.377386255654469)},
    {FRAC_CONST(0.923566141207236), FRAC_CONST(0.383439151385947)}, {FRAC_CONST(0.921036774497350), FRAC_CONST(0.389475621860365)}, {FRAC_CONST(0.918467953637492), FRAC_CONST(0.395495408495417)},
    {FRAC_CONST(0.915859788667400), FRAC_CONST(0.401498253423481)}, {FRAC_CONST(0.913212391312179), FRAC_CONST(0.407483899502658)}, {FRAC_CONST(0.910525874977521), FRAC_CONST(0.413452090327791)},
    {FRAC_CONST(0.907800354744844), FRAC_CONST(0.419402570241451)}, {FRAC_CONST(0.905035947366364), FRAC_CONST(0.425335084344881)}, {FRAC_CONST(0.902232771260093), FRAC_CONST(0.431249378508924)},
    {FRAC_CONST(0.899390946504764), FRAC_CONST(0.437145199384900)}, {FRAC_CONST(0.896510594834693), FRAC_CONST(0.443022294415467)}, {FRAC_CONST(0.893591839634558), FRAC_CONST(0.448880411845433)},
    {FRAC_CONST(0.890634805934118), FRAC_CONST(0.454719300732547)}, {FRAC_CONST(0.887639620402854), FRAC_CONST(0.460538710958240)}, {FRAC_CONST(0.884606411344546), FRAC_CONST(0.466338393238348)},
    {FRAC_CONST(0.881535308691775), FRAC_CONST(0.472118099133784)}, {FRAC_CONST(0.878426444000357), FRAC_CONST(0.477877581061184)}, {FRAC_CONST(0.875279950443708), FRAC_CONST(0.483616592303511)},
    {FRAC_CONST(0.872095962807140), FRAC_CONST(0.489334887020625)}, {FRAC_CONST(0.868874617482085), FRAC_CONST(0.495032220259813)}, {FRAC_CONST(0.865616052460258), FRAC_CONST(0.500708347966279)},
    {FRAC_CONST(0.862320407327736), FRAC_CONST(0.506363026993605)}, {FRAC_CONST(0.858987823258990), FRAC_CONST(0.511996015114162)}, {FRAC_CONST(0.855618443010829), FRAC_CONST(0.517607071029487)},
    {FRAC_CONST(0.852212410916289), FRAC_CONST(0.523195954380619)}, {FRAC_CONST(0.848769872878448), FRAC_CONST(0.528762425758396)}, {FRAC_CONST(0.845290976364179), FRAC_CONST(0.534306246713712)},
    {FRAC_CONST(0.841775870397828), FRAC_CONST(0.539827179767727)}, {FRAC_CONST(0.838224705554838), FRAC_CONST(0.545324988422046)}, {FRAC_CONST(0.834637633955290), FRAC_CONST(0.550799437168844)},
    {FRAC_CONST(0.831014809257393), FRAC_CONST(0.556250291500956)}, {FRAC_CONST(0.827356386650900), FRAC_CONST(0.561677317921925)}, {FRAC_CONST(0.823662522850458), FRAC_CONST(0.567080283956001)},
    {FRAC_CONST(0.819933376088899), FRAC_CONST(0.572458958158102)}, {FRAC_CONST(0.816169106110459), FRAC_CONST(0.577813110123727)}, {FRAC_CONST(0.812369874163934), FRAC_CONST(0.583142510498826)},
    {FRAC_CONST(0.808535842995778), FRAC_CONST(0.588446930989624)}, {FRAC_CONST(0.804667176843123), FRAC_CONST(0.593726144372402)}, {FRAC_CONST(0.800764041426753), FRAC_CONST(0.598979924503229)},
    {FRAC_CONST(0.796826603943998), FRAC_CONST(0.604208046327650)}, {FRAC_CONST(0.792855033061574), FRAC_CONST(0.609410285890327)}, {FRAC_CONST(0.788849498908361), FRAC_CONST(0.614586420344631)},
    {FRAC_CONST(0.784810173068109), FRAC_CONST(0.619736227962191)}, {FRAC_CONST(0.780737228572094), FRAC_CONST(0.624859488142386)}, {FRAC_CONST(0.776630839891703), FRAC_CONST(0.629955981421804)},
    {FRAC_CONST(0.772491182930959), FRAC_CONST(0.635025489483633)}, {FRAC_CONST(0.768318435018988), FRAC_CONST(0.640067795167023)}, {FRAC_CONST(0.764112774902423), FRAC_CONST(0.645082682476378)},
    {FRAC_CONST(0.759874382737746), FRAC_CONST(0.650069936590618)}, {FRAC_CONST(0.755603440083571), FRAC_CONST(0.655029343872374)}, {FRAC_CONST(0.751300129892866), FRAC_CONST(0.659960691877147)},
    {FRAC_CONST(0.746964636505118), FRAC_CONST(0.664863769362399)}, {FRAC_CONST(0.742597145638433), FRAC_CONST(0.669738366296610)}, {FRAC_CONST(0.738197844381584), FRAC_CONST(0.674584273868271)},
    {FRAC_CONST(0.733766921185995), FRAC_CONST(0.679401284494831)}, {FRAC_CONST(0.729304565857668), FRAC_CONST(0.684189191831585)}, {FRAC_CONST(0.724810969549055), FRAC_CONST(0.688947790780520)},
    {FRAC_CONST(0.720286324750863), FRAC_CONST(0.693676877499095)}, {FRAC_CONST(0.715730825283819), FRAC_CONST(0.698376249408973)}, {FRAC_CONST(0.711144666290356), FRAC_CONST(0.703045705204703)},
    {FRAC_CONST(0.706528044226263), FRAC_CONST(0.707685044862340)}, {FRAC_CONST(0.701881156852263), FRAC_CONST(0.712294069648014)}, {FRAC_CONST(0.697204203225545), FRAC_CONST(0.716872582126442)},
    {FRAC_CONST(0.692497383691237), FRAC_CONST(0.721420386169390)}, {FRAC_CONST(0.687760899873822), FRAC_CONST(0.725937286964068)}, {FRAC_CONST(0.682994954668502), FRAC_CONST(0.730423091021479)},
    {FRAC_CONST(0.678199752232508), FRAC_CONST(0.734877606184707)}, {FRAC_CONST(0.673375497976352), FRAC_CONST(0.739300641637149)}, {FRAC_CONST(0.668522398555031), FRAC_CONST(0.743692007910687)},
    {FRAC_CONST(0.663640661859171), FRAC_CONST(0.748051516893805)}, {FRAC_CONST(0.658730497006124), FRAC_CONST(0.752378981839648)}, {FRAC_CONST(0.653792114331011), FRAC_CONST(0.756674217374021)},
    {FRAC_CONST(0.648825725377709), FRAC_CONST(0.760937039503328)}, {FRAC_CONST(0.643831542889792), FRAC_CONST(0.765167265622459)}, {FRAC_CONST(0.638809780801414), FRAC_CONST(0.769364714522605)},
    {FRAC_CONST(0.633760654228152), FRAC_CONST(0.773529206399025)}, {FRAC_CONST(0.628684379457781), FRAC_CONST(0.777660562858748)}, {FRAC_CONST(0.623581173941019), FRAC_CONST(0.781758606928213)},
    {FRAC_CONST(0.618451256282204), FRAC_CONST(0.785823163060853)}, {FRAC_CONST(0.613294846229936), FRAC_CONST(0.789854057144609)}, {FRAC_CONST(0.608112164667659), FRAC_CONST(0.793851116509396)},
    {FRAC_CONST(0.602903433604202), FRAC_CONST(0.797814169934493)}, {FRAC_CONST(0.597668876164268), FRAC_CONST(0.801743047655882)}, {FRAC_CONST(0.592408716578875), FRAC_CONST(0.805637581373517)},
    {FRAC_CONST(0.587123180175754), FRAC_CONST(0.809497604258536)}, {FRAC_CONST(0.581812493369691), FRAC_CONST(0.813322950960406)}, {FRAC_CONST(0.576476883652835), FRAC_CONST(0.817113457614006)},
    {FRAC_CONST(0.571116579584947), FRAC_CONST(0.820868961846646)}, {FRAC_CONST(0.565731810783613), FRAC_CONST(0.824589302785025)}, {FRAC_CONST(0.560322807914407), FRAC_CONST(0.828274321062119)},
    {FRAC_CONST(0.554889802681009), FRAC_CONST(0.831923858824010)}, {FRAC_CONST(0.549433027815281), FRAC_CONST(0.835537759736646)}, {FRAC_CONST(0.543952717067296), FRAC_CONST(0.839115868992540)},
    {FRAC_CONST(0.538449105195327), FRAC_CONST(0.842658033317402)}, {FRAC_CONST(0.532922427955790), FRAC_CONST(0.846164100976699)}, {FRAC_CONST(0.527372922093142), FRAC_CONST(0.849633921782164)},
    {FRAC_CONST(0.521800825329746), FRAC_CONST(0.853067347098221)}, {FRAC_CONST(0.516206376355680), FRAC_CONST(0.856464229848356)}, {FRAC_CONST(0.510589814818519), FRAC_CONST(0.859824424521420)},
    {FRAC_CONST(0.504951381313066), FRAC_CONST(0.863147787177854)}, {FRAC_CONST(0.499291317371047), FRAC_CONST(0.866434175455865)}, {FRAC_CONST(0.493609865450762), FRAC_CONST(0.869683448577516)},
    {FRAC_CONST(0.487907268926702), FRAC_CONST(0.872895467354761)}, {FRAC_CONST(0.482183772079123), FRAC_CONST(0.876070094195407)}, {FRAC_CONST(0.476439620083580), FRAC_CONST(0.879207193109004)},
    {FRAC_CONST(0.470675059000427), FRAC_CONST(0.882306629712678)}, {FRAC_CONST(0.464890335764274), FRAC_CONST(0.885368271236879)}, {FRAC_CONST(0.459085698173413), FRAC_CONST(0.888391986531075)},
    {FRAC_CONST(0.453261394879198), FRAC_CONST(0.891377646069366)}, {FRAC_CONST(0.447417675375397), FRAC_CONST(0.894325121956035)}, {FRAC_CONST(0.441554789987504), FRAC_CONST(0.897234287931024)},
    {FRAC_CONST(0.435672989862017), FRAC_CONST(0.900105019375345)}, {FRAC_CONST(0.429772526955677), FRAC_CONST(0.902937193316419)}, {FRAC_CONST(0.423853654024676), FRAC_CONST(0.905730688433339)},
    {FRAC_CONST(0.417916624613831), FRAC_CONST(0.908485385062073)}, {FRAC_CONST(0.411961693045722), FRAC_CONST(0.911201165200584)}, {FRAC_CONST(0.405989114409798), FRAC_CONST(0.913877912513892)},
    {FRAC_CONST(0.399999144551449), FRAC_CONST(0.916515512339049)}, {FRAC_CONST(0.393992040061048), FRAC_CONST(0.919113851690058)}, {FRAC_CONST(0.387968058262959), FRAC_CONST(0.921672819262709)},
    {FRAC_CONST(0.381927457204511), FRAC_CONST(0.924192305439348)}, {FRAC_CONST(0.375870495644949), FRAC_CONST(0.926672202293573)}, {FRAC_CONST(0.369797433044349), FRAC_CONST(0.929112403594856)},
    {FRAC_CONST(0.363708529552499), FRAC_CONST(0.931512804813095)}, {FRAC_CONST(0.357604045997758), FRAC_CONST(0.933873303123091)}, {FRAC_CONST(0.351484243875885), FRAC_CONST(0.936193797408954)},
    {FRAC_CONST(0.345349385338836), FRAC_CONST(0.938474188268430)}, {FRAC_CONST(0.339199733183530), FRAC_CONST(0.940714378017165)}, {FRAC_CONST(0.333035550840599), FRAC_CONST(0.942914270692887)},
    {FRAC_CONST(0.326857102363098), FRAC_CONST(0.945073772059514)}, {FRAC_CONST(0.320664652415198), FRAC_CONST(0.947192789611197)}, {FRAC_CONST(0.314458466260842), FRAC_CONST(0.949271232576274)},
    {FRAC_CONST(0.308238809752391), FRAC_CONST(0.951309011921168)}, {FRAC_CONST(0.302005949319228), FRAC_CONST(0.953306040354194)}, {FRAC_CONST(0.295760151956351), FRAC_CONST(0.955262232329299)},
    {FRAC_CONST(0.289501685212929), FRAC_CONST(0.957177504049732)}, {FRAC_CONST(0.283230817180850), FRAC_CONST(0.959051773471624)}, {FRAC_CONST(0.276947816483228), FRAC_CONST(0.960884960307514)},
    {FRAC_CONST(0.270652952262902), FRAC_CONST(0.962676986029777)}, {FRAC_CONST(0.264346494170904), FRAC_CONST(0.964427773873996)}, {FRAC_CONST(0.258028712354909), FRAC_CONST(0.966137248842248)},
    {FRAC_CONST(0.251699877447663), FRAC_CONST(0.967805337706313)}, {FRAC_CONST(0.245360260555389), FRAC_CONST(0.969431969010818)}, {FRAC_CONST(0.239010133246176), FRAC_CONST(0.971017073076290)},
    {FRAC_CONST(0.232649767538342), FRAC_CONST(0.972560582002147)}, {FRAC_CONST(0.226279435888785), FRAC_CONST(0.974062429669605)}, {FRAC_CONST(0.219899411181310), FRAC_CONST(0.975522551744506)},
    {FRAC_CONST(0.213509966714943), FRAC_CONST(0.976940885680082)}, {FRAC_CONST(0.207111376192219), FRAC_CONST(0.978317370719628)}, {FRAC_CONST(0.200703913707458), FRAC_CONST(0.979651947899104)},
    {FRAC_CONST(0.194287853735029), FRAC_CONST(0.980944560049668)}, {FRAC_CONST(0.187863471117585), FRAC_CONST(0.982195151800116)}, {FRAC_CONST(0.181431041054297), FRAC_CONST(0.983403669579260)},
    {FRAC_CONST(0.174990839089060), FRAC_CONST(0.984570061618221)}, {FRAC_CONST(0.168543141098691), FRAC_CONST(0.985694277952645)}, {FRAC_CONST(0.162088223281113), FRAC_CONST(0.986776270424848)},
    {FRAC_CONST(0.155626362143520), FRAC_CONST(0.987815992685872)}, {FRAC_CONST(0.149157834490539), FRAC_CONST(0.988813400197476)}, {FRAC_CONST(0.142682917412363), FRAC_CONST(0.989768450234042)},
    {FRAC_CONST(0.136201888272891), FRAC_CONST(0.990681101884405)}, {FRAC_CONST(0.129715024697841), FRAC_CONST(0.991551316053606)}, {FRAC_CONST(0.123222604562857), FRAC_CONST(0.992379055464567)},
    {FRAC_CONST(0.116724905981611), FRAC_CONST(0.993164284659685)}, {FRAC_CONST(0.110222207293883), FRAC_CONST(0.993906970002356)}, {FRAC_CONST(0.103714787053643), FRAC_CONST(0.994607079678411)},
    {FRAC_CONST(0.097202924017115), FRAC_CONST(0.995264583697482)}, {FRAC_CONST(0.090686897130838), FRAC_CONST(0.995879453894286)}, {FRAC_CONST(0.084166985519718), FRAC_CONST(0.996451663929828)},
    {FRAC_CONST(0.077643468475068), FRAC_CONST(0.996981189292537)}, {FRAC_CONST(0.071116625442645), FRAC_CONST(0.997468007299307)}, {FRAC_CONST(0.064586736010684), FRAC_CONST(0.997912097096476)},
    {FRAC_CONST(0.058054079897912), FRAC_CONST(0.998313439660714)}, {FRAC_CONST(0.051518936941578), FRAC_CONST(0.998672017799843)}, {FRAC_CONST(0.044981587085452), FRAC_CONST(0.998987816153567)},
    {FRAC_CONST(0.038442310367847), FRAC_CONST(0.999260821194138)}, {FRAC_CONST(0.031901386909611), FRAC_CONST(0.999491021226926)}, {FRAC_CONST(0.025359096902136), FRAC_CONST(0.999678406390929)},
    {FRAC_CONST(0.018815720595351), FRAC_CONST(0.999822968659191)}, {FRAC_CONST(0.012271538285720), FRAC_CONST(0.999924701839145)}, {FRAC_CONST(0.005726830304231), FRAC_CONST(0.999983601572879)}};
    #endif // LD_DEC

/* 60 (N/4) complex twiddle factors */
 const complex_t mdct_tab_240[] = {
    {FRAC_CONST(0.999994645401696), FRAC_CONST(0.003272486506527)}, {FRAC_CONST(0.999566308502021), FRAC_CONST(0.029448173247963)}, {FRAC_CONST(0.998452918783950), FRAC_CONST(0.055603677682425)},
    {FRAC_CONST(0.996655239309180), FRAC_CONST(0.081721074133668)}, {FRAC_CONST(0.994174502117428), FRAC_CONST(0.107782463042759)}, {FRAC_CONST(0.991012407382049), FRAC_CONST(0.133769983235535)},
    {FRAC_CONST(0.987171122244825), FRAC_CONST(0.159665824163761)}, {FRAC_CONST(0.982653279330712), FRAC_CONST(0.185452238111591)}, {FRAC_CONST(0.977461974943572), FRAC_CONST(0.211111552358965)},
    {FRAC_CONST(0.971600766944121), FRAC_CONST(0.236626181293610)}, {FRAC_CONST(0.965073672311547), FRAC_CONST(0.261978638463337)}, {FRAC_CONST(0.957885164390477), FRAC_CONST(0.287151548560387)},
    {FRAC_CONST(0.950040169825165), FRAC_CONST(0.312127659329594)}, {FRAC_CONST(0.941544065183021), FRAC_CONST(0.336889853392220)}, {FRAC_CONST(0.932402673269775), FRAC_CONST(0.361421159977355)},
    {FRAC_CONST(0.922622259138823), FRAC_CONST(0.385704766552831)}, {FRAC_CONST(0.912209525797468), FRAC_CONST(0.409724030347695)}, {FRAC_CONST(0.901171609613013), FRAC_CONST(0.433462489758331)},
    {FRAC_CONST(0.889516075421856), FRAC_CONST(0.456903875630421)}, {FRAC_CONST(0.877250911344924), FRAC_CONST(0.480032122409011)}, {FRAC_CONST(0.864384523313017), FRAC_CONST(0.502831379149042)},
    {FRAC_CONST(0.850925729305802), FRAC_CONST(0.525286020378792)}, {FRAC_CONST(0.836883753308409), FRAC_CONST(0.547380656808797)}, {FRAC_CONST(0.822268218989775), FRAC_CONST(0.569100145878898)},
    {FRAC_CONST(0.807089143107059), FRAC_CONST(0.590429602136201)}, {FRAC_CONST(0.791356928640660), FRAC_CONST(0.611354407436816)}, {FRAC_CONST(0.775082357664531), FRAC_CONST(0.631860220964409)},
    {FRAC_CONST(0.758276583956687), FRAC_CONST(0.651932989058674)}, {FRAC_CONST(0.740951125354959), FRAC_CONST(0.671558954847018)}, {FRAC_CONST(0.723117855863248), FRAC_CONST(0.690724667672829)},
    {FRAC_CONST(0.704788997513670), FRAC_CONST(0.709416992313883)}, {FRAC_CONST(0.685977111990193), FRAC_CONST(0.727623117984575)}, {FRAC_CONST(0.666695092019479), FRAC_CONST(0.745330567115786)},
    {FRAC_CONST(0.646956152534857), FRAC_CONST(0.762527203906388)}, {FRAC_CONST(0.626773821619469), FRAC_CONST(0.779201242640517)}, {FRAC_CONST(0.606161931234795), FRAC_CONST(0.795341255764910)},
    {FRAC_CONST(0.585134607740916), FRAC_CONST(0.810936181720784)}, {FRAC_CONST(0.563706262215017), FRAC_CONST(0.825975332524873)}, {FRAC_CONST(0.541891580574752), FRAC_CONST(0.840448401094438)},
    {FRAC_CONST(0.519705513513249), FRAC_CONST(0.854345468311227)}, {FRAC_CONST(0.497163266252654), FRAC_CONST(0.867657009819544)}, {FRAC_CONST(0.474280288123229), FRAC_CONST(0.880373902553765)},
    {FRAC_CONST(0.451072261975153), FRAC_CONST(0.892487430990834)}, {FRAC_CONST(0.427555093430282), FRAC_CONST(0.903989293123443)}, {FRAC_CONST(0.403744899981227), FRAC_CONST(0.914871606149819)},
    {FRAC_CONST(0.379657999945233), FRAC_CONST(0.925126911876195)}, {FRAC_CONST(0.355310901280416), FRAC_CONST(0.934748181828292)}, {FRAC_CONST(0.330720290272038), FRAC_CONST(0.943728822068278)},
    {FRAC_CONST(0.305903020096554), FRAC_CONST(0.952062677713924)}, {FRAC_CONST(0.280876099271292), FRAC_CONST(0.959744037156857)}, {FRAC_CONST(0.255656679997665), FRAC_CONST(0.966767635977008)},
    {FRAC_CONST(0.230262046405902), FRAC_CONST(0.973128660550580)}, {FRAC_CONST(0.204709602709380), FRAC_CONST(0.978822751349072)}, {FRAC_CONST(0.179016861276633), FRAC_CONST(0.983846005927077)},
    {FRAC_CONST(0.153201430629259), FRAC_CONST(0.988194981596825)}, {FRAC_CONST(0.127281003373913), FRAC_CONST(0.991866697787626)}, {FRAC_CONST(0.101273344076683), FRAC_CONST(0.994858638088611)},
    {FRAC_CONST(0.075196277088140), FRAC_CONST(0.997168751973348)}, {FRAC_CONST(0.049067674327418), FRAC_CONST(0.998795456205172)}, {FRAC_CONST(0.022905443033697), FRAC_CONST(0.999737635922260)}};
#endif // ALLOW_SMALL_FRAMELENGTH

/*  data tables */
 const uint8_t nr_iid_par_tab[] = {10, 20, 34, 10, 20, 34, 0, 0};
 const uint8_t nr_ipdopd_par_tab[] = {5, 11, 17, 5, 11, 17, 0, 0};
 const uint8_t nr_icc_par_tab[] = {10, 20, 34, 10, 20, 34, 0, 0};
 const uint8_t num_env_tab[][4] = {{0, 1, 2, 4}, {1, 2, 3, 4}};

/* binary lookup huffman tables */
 const int8_t f_huff_iid_def[][2] = {
    {/*0*/ -31, 1},             /* index 0: 1 bits: x */
    {2, 3},                     /* index 1: 2 bits: 1x */
    {/*1*/ -30, /*-1*/ -32},    /* index 2: 3 bits: 10x */
    {4, 5},                     /* index 3: 3 bits: 11x */
    {/*2*/ -29, /*-2*/ -33},    /* index 4: 4 bits: 110x */
    {6, 7},                     /* index 5: 4 bits: 111x */
    {/*3*/ -28, /*-3*/ -34},    /* index 6: 5 bits: 1110x */
    {8, 9},                     /* index 7: 5 bits: 1111x */
    {/*-4*/ -35, /*4*/ -27},    /* index 8: 6 bits: 11110x */
    {/*5*/ -26, 10},            /* index 9: 6 bits: 11111x */
    {/*-5*/ -36, 11},           /* index 10: 7 bits: 111111x */
    {/*6*/ -25, 12},            /* index 11: 8 bits: 1111111x */
    {/*-6*/ -37, 13},           /* index 12: 9 bits: 11111111x */
    {/*-7*/ -38, 14},           /* index 13: 10 bits: 111111111x */
    {/*7*/ -24, 15},            /* index 14: 11 bits: 1111111111x */
    {16, 17},                   /* index 15: 12 bits: 11111111111x */
    {/*8*/ -23, /*-8*/ -39},    /* index 16: 13 bits: 111111111110x */
    {18, 19},                   /* index 17: 13 bits: 111111111111x */
    {/*9*/ -22, /*10*/ -21},    /* index 18: 14 bits: 1111111111110x */
    {20, 21},                   /* index 19: 14 bits: 1111111111111x */
    {/*-9*/ -40, /*11*/ -20},   /* index 20: 15 bits: 11111111111110x */
    {22, 23},                   /* index 21: 15 bits: 11111111111111x */
    {/*-10*/ -41, 24},          /* index 22: 16 bits: 111111111111110x */
    {25, 26},                   /* index 23: 16 bits: 111111111111111x */
    {/*-11*/ -42, /*-14*/ -45}, /* index 24: 17 bits: 1111111111111101x */
    {/*-13*/ -44, /*-12*/ -43}, /* index 25: 17 bits: 1111111111111110x */
    {/*12*/ -19, 27},           /* index 26: 17 bits: 1111111111111111x */
    {/*13*/ -18, /*14*/ -17}    /* index 27: 18 bits: 11111111111111111x */
};

 const int8_t t_huff_iid_def[][2] = {
    {/*0*/ -31, 1},             /* index 0: 1 bits: x */
    {/*-1*/ -32, 2},            /* index 1: 2 bits: 1x */
    {/*1*/ -30, 3},             /* index 2: 3 bits: 11x */
    {/*-2*/ -33, 4},            /* index 3: 4 bits: 111x */
    {/*2*/ -29, 5},             /* index 4: 5 bits: 1111x */
    {/*-3*/ -34, 6},            /* index 5: 6 bits: 11111x */
    {/*3*/ -28, 7},             /* index 6: 7 bits: 111111x */
    {/*-4*/ -35, 8},            /* index 7: 8 bits: 1111111x */
    {/*4*/ -27, 9},             /* index 8: 9 bits: 11111111x */
    {/*-5*/ -36, 10},           /* index 9: 10 bits: 111111111x */
    {/*5*/ -26, 11},            /* index 10: 11 bits: 1111111111x */
    {/*-6*/ -37, 12},           /* index 11: 12 bits: 11111111111x */
    {/*6*/ -25, 13},            /* index 12: 13 bits: 111111111111x */
    {/*7*/ -24, 14},            /* index 13: 14 bits: 1111111111111x */
    {/*-7*/ -38, 15},           /* index 14: 15 bits: 11111111111111x */
    {16, 17},                   /* index 15: 16 bits: 111111111111111x */
    {/*8*/ -23, /*-8*/ -39},    /* index 16: 17 bits: 1111111111111110x */
    {18, 19},                   /* index 17: 17 bits: 1111111111111111x */
    {20, 21},                   /* index 18: 18 bits: 11111111111111110x */
    {22, 23},                   /* index 19: 18 bits: 11111111111111111x */
    {/*9*/ -22, /*-14*/ -45},   /* index 20: 19 bits: 111111111111111100x */
    {/*-13*/ -44, /*-12*/ -43}, /* index 21: 19 bits: 111111111111111101x */
    {24, 25},                   /* index 22: 19 bits: 111111111111111110x */
    {26, 27},                   /* index 23: 19 bits: 111111111111111111x */
    {/*-11*/ -42, /*-10*/ -41}, /* index 24: 20 bits: 1111111111111111100x */
    {/*-9*/ -40, /*10*/ -21},   /* index 25: 20 bits: 1111111111111111101x */
    {/*11*/ -20, /*12*/ -19},   /* index 26: 20 bits: 1111111111111111110x */
    {/*13*/ -18, /*14*/ -17}    /* index 27: 20 bits: 1111111111111111111x */
};

 const int8_t f_huff_iid_fine[][2] = {
    {1, /*0*/ -31},             /* index 0: 1 bits: x */
    {2, 3},                     /* index 1: 2 bits: 0x */
    {4, /*-1*/ -32},            /* index 2: 3 bits: 00x */
    {/*1*/ -30, 5},             /* index 3: 3 bits: 01x */
    {/*-2*/ -33, /*2*/ -29},    /* index 4: 4 bits: 000x */
    {6, 7},                     /* index 5: 4 bits: 011x */
    {/*-3*/ -34, /*3*/ -28},    /* index 6: 5 bits: 0110x */
    {8, 9},                     /* index 7: 5 bits: 0111x */
    {/*-4*/ -35, /*4*/ -27},    /* index 8: 6 bits: 01110x */
    {10, 11},                   /* index 9: 6 bits: 01111x */
    {/*-5*/ -36, /*5*/ -26},    /* index 10: 7 bits: 011110x */
    {12, 13},                   /* index 11: 7 bits: 011111x */
    {/*-6*/ -37, /*6*/ -25},    /* index 12: 8 bits: 0111110x */
    {14, 15},                   /* index 13: 8 bits: 0111111x */
    {/*7*/ -24, 16},            /* index 14: 9 bits: 01111110x */
    {17, 18},                   /* index 15: 9 bits: 01111111x */
    {19, /*-8*/ -39},           /* index 16: 10 bits: 011111101x */
    {/*8*/ -23, 20},            /* index 17: 10 bits: 011111110x */
    {21, /*-7*/ -38},           /* index 18: 10 bits: 011111111x */
    {/*10*/ -21, 22},           /* index 19: 11 bits: 0111111010x */
    {23, /*-9*/ -40},           /* index 20: 11 bits: 0111111101x */
    {/*9*/ -22, 24},            /* index 21: 11 bits: 0111111110x */
    {/*-11*/ -42, /*11*/ -20},  /* index 22: 12 bits: 01111110101x */
    {25, 26},                   /* index 23: 12 bits: 01111111010x */
    {27, /*-10*/ -41},          /* index 24: 12 bits: 01111111101x */
    {28, /*-12*/ -43},          /* index 25: 13 bits: 011111110100x */
    {/*12*/ -19, 29},           /* index 26: 13 bits: 011111110101x */
    {30, 31},                   /* index 27: 13 bits: 011111111010x */
    {32, /*-14*/ -45},          /* index 28: 14 bits: 0111111101000x */
    {/*14*/ -17, 33},           /* index 29: 14 bits: 0111111101011x */
    {34, /*-13*/ -44},          /* index 30: 14 bits: 0111111110100x */
    {/*13*/ -18, 35},           /* index 31: 14 bits: 0111111110101x */
    {36, 37},                   /* index 32: 15 bits: 01111111010000x */
    {38, /*-15*/ -46},          /* index 33: 15 bits: 01111111010111x */
    {/*15*/ -16, 39},           /* index 34: 15 bits: 01111111101000x */
    {40, 41},                   /* index 35: 15 bits: 01111111101011x */
    {42, 43},                   /* index 36: 16 bits: 011111110100000x */
    {/*-17*/ -48, /*17*/ -14},  /* index 37: 16 bits: 011111110100001x */
    {44, 45},                   /* index 38: 16 bits: 011111110101110x */
    {46, 47},                   /* index 39: 16 bits: 011111111010001x */
    {48, 49},                   /* index 40: 16 bits: 011111111010110x */
    {/*-16*/ -47, /*16*/ -15},  /* index 41: 16 bits: 011111111010111x */
    {/*-21*/ -52, /*21*/ -10},  /* index 42: 17 bits: 0111111101000000x */
    {/*-19*/ -50, /*19*/ -12},  /* index 43: 17 bits: 0111111101000001x */
    {/*-18*/ -49, /*18*/ -13},  /* index 44: 17 bits: 0111111101011100x */
    {50, 51},                   /* index 45: 17 bits: 0111111101011101x */
    {52, 53},                   /* index 46: 17 bits: 0111111110100010x */
    {54, 55},                   /* index 47: 17 bits: 0111111110100011x */
    {56, 57},                   /* index 48: 17 bits: 0111111110101100x */
    {58, 59},                   /* index 49: 17 bits: 0111111110101101x */
    {/*-26*/ -57, /*-25*/ -56}, /* index 50: 18 bits: 01111111010111010x */
    {/*-28*/ -59, /*-27*/ -58}, /* index 51: 18 bits: 01111111010111011x */
    {/*-22*/ -53, /*22*/ -9},   /* index 52: 18 bits: 01111111101000100x */
    {/*-24*/ -55, /*-23*/ -54}, /* index 53: 18 bits: 01111111101000101x */
    {/*25*/ -6, /*26*/ -5},     /* index 54: 18 bits: 01111111101000110x */
    {/*23*/ -8, /*24*/ -7},     /* index 55: 18 bits: 01111111101000111x */
    {/*29*/ -2, /*30*/ -1},     /* index 56: 18 bits: 01111111101011000x */
    {/*27*/ -4, /*28*/ -3},     /* index 57: 18 bits: 01111111101011001x */
    {/*-30*/ -61, /*-29*/ -60}, /* index 58: 18 bits: 01111111101011010x */
    {/*-20*/ -51, /*20*/ -11}   /* index 59: 18 bits: 01111111101011011x */
};

 const int8_t t_huff_iid_fine[][2] = {
    {1, /*0*/ -31},             /* index 0: 1 bits: x */
    {/*1*/ -30, 2},             /* index 1: 2 bits: 0x */
    {3, /*-1*/ -32},            /* index 2: 3 bits: 01x */
    {4, 5},                     /* index 3: 4 bits: 010x */
    {6, 7},                     /* index 4: 5 bits: 0100x */
    {/*-2*/ -33, /*2*/ -29},    /* index 5: 5 bits: 0101x */
    {8, /*-3*/ -34},            /* index 6: 6 bits: 01000x */
    {/*3*/ -28, 9},             /* index 7: 6 bits: 01001x */
    {/*-4*/ -35, /*4*/ -27},    /* index 8: 7 bits: 010000x */
    {10, 11},                   /* index 9: 7 bits: 010011x */
    {/*5*/ -26, 12},            /* index 10: 8 bits: 0100110x */
    {13, 14},                   /* index 11: 8 bits: 0100111x */
    {/*-6*/ -37, /*6*/ -25},    /* index 12: 9 bits: 01001101x */
    {15, 16},                   /* index 13: 9 bits: 01001110x */
    {17, /*-5*/ -36},           /* index 14: 9 bits: 01001111x */
    {18, /*-7*/ -38},           /* index 15: 10 bits: 010011100x */
    {/*7*/ -24, 19},            /* index 16: 10 bits: 010011101x */
    {20, 21},                   /* index 17: 10 bits: 010011110x */
    {/*9*/ -22, 22},            /* index 18: 11 bits: 0100111000x */
    {23, 24},                   /* index 19: 11 bits: 0100111011x */
    {/*-8*/ -39, /*8*/ -23},    /* index 20: 11 bits: 0100111100x */
    {25, 26},                   /* index 21: 11 bits: 0100111101x */
    {/*11*/ -20, 27},           /* index 22: 12 bits: 01001110001x */
    {28, 29},                   /* index 23: 12 bits: 01001110110x */
    {/*-10*/ -41, /*10*/ -21},  /* index 24: 12 bits: 01001110111x */
    {30, 31},                   /* index 25: 12 bits: 01001111010x */
    {32, /*-9*/ -40},           /* index 26: 12 bits: 01001111011x */
    {33, /*-13*/ -44},          /* index 27: 13 bits: 010011100011x */
    {/*13*/ -18, 34},           /* index 28: 13 bits: 010011101100x */
    {35, 36},                   /* index 29: 13 bits: 010011101101x */
    {37, /*-12*/ -43},          /* index 30: 13 bits: 010011110100x */
    {/*12*/ -19, 38},           /* index 31: 13 bits: 010011110101x */
    {39, /*-11*/ -42},          /* index 32: 13 bits: 010011110110x */
    {40, 41},                   /* index 33: 14 bits: 0100111000110x */
    {42, 43},                   /* index 34: 14 bits: 0100111011001x */
    {44, 45},                   /* index 35: 14 bits: 0100111011010x */
    {46, /*-15*/ -46},          /* index 36: 14 bits: 0100111011011x */
    {/*15*/ -16, 47},           /* index 37: 14 bits: 0100111101000x */
    {/*-14*/ -45, /*14*/ -17},  /* index 38: 14 bits: 0100111101011x */
    {48, 49},                   /* index 39: 14 bits: 0100111101100x */
    {/*-21*/ -52, /*-20*/ -51}, /* index 40: 15 bits: 01001110001100x */
    {/*18*/ -13, /*19*/ -12},   /* index 41: 15 bits: 01001110001101x */
    {/*-19*/ -50, /*-18*/ -49}, /* index 42: 15 bits: 01001110110010x */
    {50, 51},                   /* index 43: 15 bits: 01001110110011x */
    {52, 53},                   /* index 44: 15 bits: 01001110110100x */
    {54, 55},                   /* index 45: 15 bits: 01001110110101x */
    {56, /*-17*/ -48},          /* index 46: 15 bits: 01001110110110x */
    {/*17*/ -14, 57},           /* index 47: 15 bits: 01001111010001x */
    {58, /*-16*/ -47},          /* index 48: 15 bits: 01001111011000x */
    {/*16*/ -15, 59},           /* index 49: 15 bits: 01001111011001x */
    {/*-26*/ -57, /*26*/ -5},   /* index 50: 16 bits: 010011101100110x */
    {/*-28*/ -59, /*-27*/ -58}, /* index 51: 16 bits: 010011101100111x */
    {/*29*/ -2, /*30*/ -1},     /* index 52: 16 bits: 010011101101000x */
    {/*27*/ -4, /*28*/ -3},     /* index 53: 16 bits: 010011101101001x */
    {/*-30*/ -61, /*-29*/ -60}, /* index 54: 16 bits: 010011101101010x */
    {/*-25*/ -56, /*25*/ -6},   /* index 55: 16 bits: 010011101101011x */
    {/*-24*/ -55, /*24*/ -7},   /* index 56: 16 bits: 010011101101100x */
    {/*-23*/ -54, /*23*/ -8},   /* index 57: 16 bits: 010011110100011x */
    {/*-22*/ -53, /*22*/ -9},   /* index 58: 16 bits: 010011110110000x */
    {/*20*/ -11, /*21*/ -10}    /* index 59: 16 bits: 010011110110011x */
};

 const int8_t f_huff_icc[][2] = {
    {/*0*/ -31, 1},          /* index 0: 1 bits: x */
    {/*1*/ -30, 2},          /* index 1: 2 bits: 1x */
    {/*-1*/ -32, 3},         /* index 2: 3 bits: 11x */
    {/*2*/ -29, 4},          /* index 3: 4 bits: 111x */
    {/*-2*/ -33, 5},         /* index 4: 5 bits: 1111x */
    {/*3*/ -28, 6},          /* index 5: 6 bits: 11111x */
    {/*-3*/ -34, 7},         /* index 6: 7 bits: 111111x */
    {/*4*/ -27, 8},          /* index 7: 8 bits: 1111111x */
    {/*5*/ -26, 9},          /* index 8: 9 bits: 11111111x */
    {/*-4*/ -35, 10},        /* index 9: 10 bits: 111111111x */
    {/*6*/ -25, 11},         /* index 10: 11 bits: 1111111111x */
    {/*-5*/ -36, 12},        /* index 11: 12 bits: 11111111111x */
    {/*7*/ -24, 13},         /* index 12: 13 bits: 111111111111x */
    {/*-6*/ -37, /*-7*/ -38} /* index 13: 14 bits: 1111111111111x */
};

 const int8_t t_huff_icc[][2] = {
    {/*0*/ -31, 1},         /* index 0: 1 bits: x */
    {/*1*/ -30, 2},         /* index 1: 2 bits: 1x */
    {/*-1*/ -32, 3},        /* index 2: 3 bits: 11x */
    {/*2*/ -29, 4},         /* index 3: 4 bits: 111x */
    {/*-2*/ -33, 5},        /* index 4: 5 bits: 1111x */
    {/*3*/ -28, 6},         /* index 5: 6 bits: 11111x */
    {/*-3*/ -34, 7},        /* index 6: 7 bits: 111111x */
    {/*4*/ -27, 8},         /* index 7: 8 bits: 1111111x */
    {/*-4*/ -35, 9},        /* index 8: 9 bits: 11111111x */
    {/*5*/ -26, 10},        /* index 9: 10 bits: 111111111x */
    {/*-5*/ -36, 11},       /* index 10: 11 bits: 1111111111x */
    {/*6*/ -25, 12},        /* index 11: 12 bits: 11111111111x */
    {/*-6*/ -37, 13},       /* index 12: 13 bits: 111111111111x */
    {/*-7*/ -38, /*7*/ -24} /* index 13: 14 bits: 1111111111111x */
};

 const int8_t f_huff_ipd[][2] = {
    {1, /*0*/ -31},         /* index 0: 1 bits: x */
    {2, 3},                 /* index 1: 2 bits: 0x */
    {/*1*/ -30, 4},         /* index 2: 3 bits: 00x */
    {5, 6},                 /* index 3: 3 bits: 01x */
    {/*4*/ -27, /*5*/ -26}, /* index 4: 4 bits: 001x */
    {/*3*/ -28, /*6*/ -25}, /* index 5: 4 bits: 010x */
    {/*2*/ -29, /*7*/ -24}  /* index 6: 4 bits: 011x */
};

 const int8_t t_huff_ipd[][2] = {
    {1, /*0*/ -31},         /* index 0: 1 bits: x */
    {2, 3},                 /* index 1: 2 bits: 0x */
    {4, 5},                 /* index 2: 3 bits: 00x */
    {/*1*/ -30, /*7*/ -24}, /* index 3: 3 bits: 01x */
    {/*5*/ -26, 6},         /* index 4: 4 bits: 000x */
    {/*2*/ -29, /*6*/ -25}, /* index 5: 4 bits: 001x */
    {/*4*/ -27, /*3*/ -28}  /* index 6: 5 bits: 0001x */
};

 const int8_t f_huff_opd[][2] = {
    {1, /*0*/ -31},         /* index 0: 1 bits: x */
    {2, 3},                 /* index 1: 2 bits: 0x */
    {/*7*/ -24, /*1*/ -30}, /* index 2: 3 bits: 00x */
    {4, 5},                 /* index 3: 3 bits: 01x */
    {/*3*/ -28, /*6*/ -25}, /* index 4: 4 bits: 010x */
    {/*2*/ -29, 6},         /* index 5: 4 bits: 011x */
    {/*5*/ -26, /*4*/ -27}  /* index 6: 5 bits: 0111x */
};

 const int8_t t_huff_opd[][2] = {
    {1, /*0*/ -31},         /* index 0: 1 bits: x */
    {2, 3},                 /* index 1: 2 bits: 0x */
    {4, 5},                 /* index 2: 3 bits: 00x */
    {/*1*/ -30, /*7*/ -24}, /* index 3: 3 bits: 01x */
    {/*5*/ -26, /*2*/ -29}, /* index 4: 4 bits: 000x */
    {/*6*/ -25, 6},         /* index 5: 4 bits: 001x */
    {/*4*/ -27, /*3*/ -28}  /* index 6: 5 bits: 0011x */
};

 const int8_t t_huffman_env_1_5dB[120][2] = {
    {1, 2},       {-64, -65}, {3, 4},     {-63, -66},   {5, 6},     {-62, -67}, {7, 8},       {-61, -68},   {9, 10},    {-60, -69},   {11, 12},     {-59, -70},   {13, 14},   {-58, -71},
    {15, 16},     {-57, -72}, {17, 18},   {-73, -56},   {19, 21},   {-74, 20},  {-55, -75},   {22, 26},     {23, 24},   {-54, -76},   {-77, 25},    {-53, -78},   {27, 34},   {28, 29},
    {-52, -79},   {30, 31},   {-80, -51}, {32, 33},     {-83, -82}, {-81, -50}, {35, 57},     {36, 40},     {37, 38},   {-88, -84},   {-48, 39},    {-90, -85},   {41, 46},   {42, 43},
    {-49, -87},   {44, 45},   {-89, -86}, {-124, -123}, {47, 50},   {48, 49},   {-122, -121}, {-120, -119}, {51, 54},   {52, 53},     {-118, -117}, {-116, -115}, {55, 56},   {-114, -113},
    {-112, -111}, {58, 89},   {59, 74},   {60, 67},     {61, 64},   {62, 63},   {-110, -109}, {-108, -107}, {65, 66},   {-106, -105}, {-104, -103}, {68, 71},     {69, 70},   {-102, -101},
    {-100, -99},  {72, 73},   {-98, -97}, {-96, -95},   {75, 82},   {76, 79},   {77, 78},     {-94, -93},   {-92, -91}, {80, 81},     {-47, -46},   {-45, -44},   {83, 86},   {84, 85},
    {-43, -42},   {-41, -40}, {87, 88},   {-39, -38},   {-37, -36}, {90, 105},  {91, 98},     {92, 95},     {93, 94},   {-35, -34},   {-33, -32},   {96, 97},     {-31, -30}, {-29, -28},
    {99, 102},    {100, 101}, {-27, -26}, {-25, -24},   {103, 104}, {-23, -22}, {-21, -20},   {106, 113},   {107, 110}, {108, 109},   {-19, -18},   {-17, -16},   {111, 112}, {-15, -14},
    {-13, -12},   {114, 117}, {115, 116}, {-11, -10},   {-9, -8},   {118, 119}, {-7, -6},     {-5, -4}};

 const int8_t f_huffman_env_1_5dB[120][2] = {
    {1, 2},       {-64, -65},   {3, 4},     {-63, -66},   {5, 6},       {-67, -62}, {7, 8},       {-68, -61}, {9, 10},      {-69, -60},   {11, 13},     {-70, 12},    {-59, -71},  {14, 16},
    {-58, 15},    {-72, -57},   {17, 19},   {-73, 18},    {-56, -74},   {20, 23},   {21, 22},     {-55, -75}, {-54, -53},   {24, 27},     {25, 26},     {-76, -52},   {-77, -51},  {28, 31},
    {29, 30},     {-50, -78},   {-79, -49}, {32, 36},     {33, 34},     {-48, -47}, {-80, 35},    {-81, -82}, {37, 47},     {38, 41},     {39, 40},     {-83, -46},   {-45, -84},  {42, 44},
    {-85, 43},    {-44, -43},   {45, 46},   {-88, -87},   {-86, -90},   {48, 66},   {49, 56},     {50, 53},   {51, 52},     {-92, -42},   {-41, -39},   {54, 55},     {-105, -89}, {-38, -37},
    {57, 60},     {58, 59},     {-94, -91}, {-40, -36},   {61, 63},     {-20, 62},  {-115, -110}, {64, 65},   {-108, -107}, {-101, -97},  {67, 89},     {68, 75},     {69, 72},    {70, 71},
    {-95, -93},   {-34, -27},   {73, 74},   {-22, -17},   {-16, -124},  {76, 82},   {77, 79},     {-123, 78}, {-122, -121}, {80, 81},     {-120, -119}, {-118, -117}, {83, 86},    {84, 85},
    {-116, -114}, {-113, -112}, {87, 88},   {-111, -109}, {-106, -104}, {90, 105},  {91, 98},     {92, 95},   {93, 94},     {-103, -102}, {-100, -99},  {96, 97},     {-98, -96},  {-35, -33},
    {99, 102},    {100, 101},   {-32, -31}, {-30, -29},   {103, 104},   {-28, -26}, {-25, -24},   {106, 113}, {107, 110},   {108, 109},   {-23, -21},   {-19, -18},   {111, 112},  {-15, -14},
    {-13, -12},   {114, 117},   {115, 116}, {-11, -10},   {-9, -8},     {118, 119}, {-7, -6},     {-5, -4}};

 const int8_t t_huffman_env_bal_1_5dB[48][2] = {{-64, 1},   {-63, 2}, {-65, 3},   {-62, 4},   {-66, 5},   {-61, 6},   {-67, 7}, {-60, 8},   {-68, 9},   {10, 11}, {-69, -59}, {12, 13},
                                                      {-70, -58}, {14, 28}, {15, 21},   {16, 18},   {-57, 17},  {-71, -56}, {19, 20}, {-88, -87}, {-86, -85}, {22, 25}, {23, 24},   {-84, -83},
                                                      {-82, -81}, {26, 27}, {-80, -79}, {-78, -77}, {29, 36},   {30, 33},   {31, 32}, {-76, -75}, {-74, -73}, {34, 35}, {-72, -55}, {-54, -53},
                                                      {37, 41},   {38, 39}, {-52, -51}, {-50, 40},  {-49, -48}, {42, 45},   {43, 44}, {-47, -46}, {-45, -44}, {46, 47}, {-43, -42}, {-41, -40}};

 const int8_t f_huffman_env_bal_1_5dB[48][2] = {{-64, 1},   {-65, 2}, {-63, 3},   {-66, 4},   {-62, 5},   {-61, 6}, {-67, 7},   {-68, 8},   {-60, 9},  {10, 11},   {-69, -59}, {-70, 12},
                                                      {-58, 13},  {14, 17}, {-71, 15},  {-57, 16},  {-56, -73}, {18, 32}, {19, 25},   {20, 22},   {-72, 21}, {-88, -87}, {23, 24},   {-86, -85},
                                                      {-84, -83}, {26, 29}, {27, 28},   {-82, -81}, {-80, -79}, {30, 31}, {-78, -77}, {-76, -75}, {33, 40},  {34, 37},   {35, 36},   {-74, -55},
                                                      {-54, -53}, {38, 39}, {-52, -51}, {-50, -49}, {41, 44},   {42, 43}, {-48, -47}, {-46, -45}, {45, 46},  {-44, -43}, {-42, 47},  {-41, -40}};

 const int8_t t_huffman_env_3_0dB[62][2] = {
    {-64, 1},   {-65, 2},   {-63, 3},   {-66, 4},   {-62, 5},   {-67, 6},   {-61, 7},   {-68, 8},   {-60, 9},   {10, 11},   {-69, -59}, {12, 14},   {-70, 13},  {-71, -58}, {15, 18},   {16, 17},
    {-72, -57}, {-73, -74}, {19, 22},   {-56, 20},  {-55, 21},  {-54, -77}, {23, 31},   {24, 25},   {-75, -76}, {26, 27},   {-78, -53}, {28, 29},   {-52, -95}, {-94, 30},  {-93, -92}, {32, 47},
    {33, 40},   {34, 37},   {35, 36},   {-91, -90}, {-89, -88}, {38, 39},   {-87, -86}, {-85, -84}, {41, 44},   {42, 43},   {-83, -82}, {-81, -80}, {45, 46},   {-79, -51}, {-50, -49}, {48, 55},
    {49, 52},   {50, 51},   {-48, -47}, {-46, -45}, {53, 54},   {-44, -43}, {-42, -41}, {56, 59},   {57, 58},   {-40, -39}, {-38, -37}, {60, 61},   {-36, -35}, {-34, -33}};

 const int8_t f_huffman_env_3_0dB[62][2] = {
    {-64, 1}, {-65, 2},   {-63, 3},   {-66, 4},   {-62, 5},   {-67, 6},   {7, 8},     {-61, -68}, {9, 10},  {-60, -69}, {11, 12},   {-59, -70}, {13, 14},   {-58, -71}, {15, 16},   {-57, -72},
    {17, 19}, {-56, 18},  {-55, -73}, {20, 24},   {21, 22},   {-74, -54}, {-53, 23},  {-75, -76}, {25, 30}, {26, 27},   {-52, -51}, {28, 29},   {-77, -79}, {-50, -49}, {31, 39},   {32, 35},
    {33, 34}, {-78, -46}, {-82, -88}, {36, 37},   {-83, -48}, {-47, 38},  {-86, -85}, {40, 47},   {41, 44}, {42, 43},   {-80, -44}, {-43, -42}, {45, 46},   {-39, -87}, {-84, -40}, {48, 55},
    {49, 52}, {50, 51},   {-95, -94}, {-93, -92}, {53, 54},   {-91, -90}, {-89, -81}, {56, 59},   {57, 58}, {-45, -41}, {-38, -37}, {60, 61},   {-36, -35}, {-34, -33}};

 const int8_t t_huffman_env_bal_3_0dB[24][2] = {{-64, 1},   {-63, 2}, {-65, 3},   {-66, 4},   {-62, 5}, {-61, 6}, {-67, 7},   {-68, 8},   {-60, 9}, {10, 16},   {11, 13},  {-69, 12},
                                                      {-76, -75}, {14, 15}, {-74, -73}, {-72, -71}, {17, 20}, {18, 19}, {-70, -59}, {-58, -57}, {21, 22}, {-56, -55}, {-54, 23}, {-53, -52}};

 const int8_t f_huffman_env_bal_3_0dB[24][2] = {{-64, 1},   {-65, 2}, {-63, 3}, {-66, 4},   {-62, 5},   {-61, 6}, {-67, 7}, {-68, 8},   {-60, 9},   {10, 13}, {-69, 11},  {-59, 12},
                                                      {-58, -76}, {14, 17}, {15, 16}, {-75, -74}, {-73, -72}, {18, 21}, {19, 20}, {-71, -70}, {-57, -56}, {22, 23}, {-55, -54}, {-53, -52}};

 const int8_t t_huffman_noise_3_0dB[62][2] = {
    {-64, 1}, {-63, 2},   {-65, 3},   {-66, 4},   {-62, 5},   {-67, 6},   {7, 8},     {-61, -68}, {9, 30},    {10, 15},   {-60, 11},  {-69, 12},  {13, 14},   {-59, -53}, {-95, -94}, {16, 23},
    {17, 20}, {18, 19},   {-93, -92}, {-91, -90}, {21, 22},   {-89, -88}, {-87, -86}, {24, 27},   {25, 26},   {-85, -84}, {-83, -82}, {28, 29},   {-81, -80}, {-79, -78}, {31, 46},   {32, 39},
    {33, 36}, {34, 35},   {-77, -76}, {-75, -74}, {37, 38},   {-73, -72}, {-71, -70}, {40, 43},   {41, 42},   {-58, -57}, {-56, -55}, {44, 45},   {-54, -52}, {-51, -50}, {47, 54},   {48, 51},
    {49, 50}, {-49, -48}, {-47, -46}, {52, 53},   {-45, -44}, {-43, -42}, {55, 58},   {56, 57},   {-41, -40}, {-39, -38}, {59, 60},   {-37, -36}, {-35, 61},  {-34, -33}};

 const int8_t t_huffman_noise_bal_3_0dB[24][2] = {{-64, 1},   {-65, 2},   {-63, 3}, {4, 9},     {-66, 5},   {-62, 6}, {7, 8},   {-76, -75}, {-74, -73}, {10, 17}, {11, 14},   {12, 13},
                                                        {-72, -71}, {-70, -69}, {15, 16}, {-68, -67}, {-61, -60}, {18, 21}, {19, 20}, {-59, -58}, {-57, -56}, {22, 23}, {-55, -54}, {-53, -52}};

//----------------------------------------------------------------------------------------------------------------------------------------------------
/* index == 99 means not allowed codeword */
 const rvlc_huff_table_t book_rvlc[] = {
    /*index  length  codeword */
    {0, 1, 0},    /*         0 */
    {-1, 3, 5},   /*       101 */
    {1, 3, 7},    /*       111 */
    {-2, 4, 9},   /*      1001 */
    {-3, 5, 17},  /*     10001 */
    {2, 5, 27},   /*     11011 */
    {-4, 6, 33},  /*    100001 */
    {99, 6, 50},  /*    110010 */
    {3, 6, 51},   /*    110011 */
    {99, 6, 52},  /*    110100 */
    {-7, 7, 65},  /*   1000001 */
    {99, 7, 96},  /*   1100000 */
    {99, 7, 98},  /*   1100010 */
    {7, 7, 99},   /*   1100011 */
    {4, 7, 107},  /*   1101011 */
    {-5, 8, 129}, /*  10000001 */
    {99, 8, 194}, /*  11000010 */
    {5, 8, 195},  /*  11000011 */
    {99, 8, 212}, /*  11010100 */
    {99, 9, 256}, /* 100000000 */
    {-6, 9, 257}, /* 100000001 */
    {99, 9, 426}, /* 110101010 */
    {6, 9, 427},  /* 110101011 */
    {99, 10, 0}   /* Shouldn't come this far */
};

//----------------------------------------------------------------------------------------------------------------------------------------------------
 const rvlc_huff_table_t book_escape[] = {
    /*index  length  codeword */
    {1, 2, 0},        {0, 2, 2},        {3, 3, 2},        {2, 3, 6},        {4, 4, 14},       {7, 5, 13},       {6, 5, 15},       {5, 5, 31},       {11, 6, 24},      {10, 6, 25},
    {9, 6, 29},       {8, 6, 61},       {13, 7, 56},      {12, 7, 120},     {15, 8, 114},     {14, 8, 242},     {17, 9, 230},     {16, 9, 486},     {19, 10, 463},    {18, 10, 974},
    {22, 11, 925},    {20, 11, 1950},   {21, 11, 1951},   {23, 12, 1848},   {25, 13, 3698},   {24, 14, 7399},   {26, 15, 14797},  {49, 19, 236736}, {50, 19, 236737}, {51, 19, 236738},
    {52, 19, 236739}, {53, 19, 236740}, {27, 20, 473482}, {28, 20, 473483}, {29, 20, 473484}, {30, 20, 473485}, {31, 20, 473486}, {32, 20, 473487}, {33, 20, 473488}, {34, 20, 473489},
    {35, 20, 473490}, {36, 20, 473491}, {37, 20, 473492}, {38, 20, 473493}, {39, 20, 473494}, {40, 20, 473495}, {41, 20, 473496}, {42, 20, 473497}, {43, 20, 473498}, {44, 20, 473499},
    {45, 20, 473500}, {46, 20, 473501}, {47, 20, 473502}, {48, 20, 473503}, {99, 21, 0} /* Shouldn't come this far */
};


// w_array_real[i] = cos(2*M_PI*i/32)
 const int32_t w_array_real[] = {FRAC_CONST(1.000000000000000),  FRAC_CONST(0.980785279337272),  FRAC_CONST(0.923879528329380),  FRAC_CONST(0.831469603195765),
                                       FRAC_CONST(0.707106765732237),  FRAC_CONST(0.555570210304169),  FRAC_CONST(0.382683402077046),  FRAC_CONST(0.195090284503576),
                                       FRAC_CONST(0.000000000000000),  FRAC_CONST(-0.195090370246552), FRAC_CONST(-0.382683482845162), FRAC_CONST(-0.555570282993553),
                                       FRAC_CONST(-0.707106827549476), FRAC_CONST(-0.831469651765257), FRAC_CONST(-0.923879561784627), FRAC_CONST(-0.980785296392607)};

// w_array_imag[i] = sin(-2*M_PI*i/32)
 const int32_t w_array_imag[] = {FRAC_CONST(0.000000000000000),  FRAC_CONST(-0.195090327375064), FRAC_CONST(-0.382683442461104), FRAC_CONST(-0.555570246648862),
                                       FRAC_CONST(-0.707106796640858), FRAC_CONST(-0.831469627480512), FRAC_CONST(-0.923879545057005), FRAC_CONST(-0.980785287864940),
                                       FRAC_CONST(-1.000000000000000), FRAC_CONST(-0.980785270809601), FRAC_CONST(-0.923879511601754), FRAC_CONST(-0.831469578911016),
                                       FRAC_CONST(-0.707106734823616), FRAC_CONST(-0.555570173959476), FRAC_CONST(-0.382683361692986), FRAC_CONST(-0.195090241632088)};

 const int32_t dct4_64_tab[] = {
    COEF_CONST(0.999924719333649),  COEF_CONST(0.998118102550507),  COEF_CONST(0.993906974792480),  COEF_CONST(0.987301409244537),  COEF_CONST(0.978317379951477),  COEF_CONST(0.966976463794708),
    COEF_CONST(0.953306019306183),  COEF_CONST(0.937339007854462),  COEF_CONST(0.919113874435425),  COEF_CONST(0.898674488067627),  COEF_CONST(0.876070082187653),  COEF_CONST(0.851355195045471),
    COEF_CONST(0.824589252471924),  COEF_CONST(0.795836925506592),  COEF_CONST(0.765167236328125),  COEF_CONST(0.732654273509979),  COEF_CONST(0.698376238346100),  COEF_CONST(0.662415742874146),
    COEF_CONST(0.624859452247620),  COEF_CONST(0.585797846317291),  COEF_CONST(0.545324981212616),  COEF_CONST(0.503538429737091),  COEF_CONST(0.460538715124130),  COEF_CONST(0.416429549455643),
    COEF_CONST(0.371317148208618),  COEF_CONST(0.325310230255127),  COEF_CONST(0.278519600629807),  COEF_CONST(0.231058135628700),  COEF_CONST(0.183039888739586),  COEF_CONST(0.134580686688423),
    COEF_CONST(0.085797272622585),  COEF_CONST(0.036807164549828),  COEF_CONST(-1.012196302413940), COEF_CONST(-1.059438824653626), COEF_CONST(-1.104129195213318), COEF_CONST(-1.146159529685974),
    COEF_CONST(-1.185428738594055), COEF_CONST(-1.221842169761658), COEF_CONST(-1.255311965942383), COEF_CONST(-1.285757660865784), COEF_CONST(-1.313105940818787), COEF_CONST(-1.337290763854981),
    COEF_CONST(-1.358253836631775), COEF_CONST(-1.375944852828980), COEF_CONST(-1.390321016311646), COEF_CONST(-1.401347875595093), COEF_CONST(-1.408998727798462), COEF_CONST(-1.413255214691162),
    COEF_CONST(-1.414107084274292), COEF_CONST(-1.411552190780640), COEF_CONST(-1.405596733093262), COEF_CONST(-1.396255016326904), COEF_CONST(-1.383549690246582), COEF_CONST(-1.367511272430420),
    COEF_CONST(-1.348178386688232), COEF_CONST(-1.325597524642944), COEF_CONST(-1.299823284149170), COEF_CONST(-1.270917654037476), COEF_CONST(-1.238950133323669), COEF_CONST(-1.203998088836670),
    COEF_CONST(-1.166145324707031), COEF_CONST(-1.125483393669128), COEF_CONST(-1.082109928131104), COEF_CONST(-1.036129593849182), COEF_CONST(-0.987653195858002), COEF_CONST(-0.936797380447388),
    COEF_CONST(-0.883684754371643), COEF_CONST(-0.828443288803101), COEF_CONST(-0.771206021308899), COEF_CONST(-0.712110757827759), COEF_CONST(-0.651300072669983), COEF_CONST(-0.588920354843140),
    COEF_CONST(-0.525121808052063), COEF_CONST(-0.460058242082596), COEF_CONST(-0.393886327743530), COEF_CONST(-0.326765477657318), COEF_CONST(-0.258857429027557), COEF_CONST(-0.190325915813446),
    COEF_CONST(-0.121335685253143), COEF_CONST(-0.052053272724152), COEF_CONST(0.017354607582092),  COEF_CONST(0.086720645427704),  COEF_CONST(0.155877828598022),  COEF_CONST(0.224659323692322),
    COEF_CONST(0.292899727821350),  COEF_CONST(0.360434412956238),  COEF_CONST(0.427100926637650),  COEF_CONST(0.492738455533981),  COEF_CONST(0.557188928127289),  COEF_CONST(0.620297133922577),
    COEF_CONST(0.681910991668701),  COEF_CONST(0.741881847381592),  COEF_CONST(0.800065577030182),  COEF_CONST(0.856321990489960),  COEF_CONST(0.910515367984772),  COEF_CONST(0.962515234947205),
    COEF_CONST(1.000000000000000),  COEF_CONST(0.998795449733734),  COEF_CONST(0.995184719562531),  COEF_CONST(0.989176511764526),  COEF_CONST(0.980785250663757),  COEF_CONST(0.970031261444092),
    COEF_CONST(0.956940352916718),  COEF_CONST(0.941544055938721),  COEF_CONST(0.923879504203796),  COEF_CONST(0.903989315032959),  COEF_CONST(0.881921231746674),  COEF_CONST(0.857728600502014),
    COEF_CONST(0.831469595432281),  COEF_CONST(0.803207516670227),  COEF_CONST(0.773010432720184),  COEF_CONST(0.740951120853424),  COEF_CONST(0.707106769084930),  COEF_CONST(0.671558916568756),
    COEF_CONST(0.634393274784088),  COEF_CONST(0.595699310302734),  COEF_CONST(0.555570185184479),  COEF_CONST(0.514102697372437),  COEF_CONST(0.471396654844284),  COEF_CONST(0.427555114030838),
    COEF_CONST(0.382683426141739),  COEF_CONST(0.336889833211899),  COEF_CONST(0.290284633636475),  COEF_CONST(0.242980122566223),  COEF_CONST(0.195090234279633),  COEF_CONST(0.146730497479439),
    COEF_CONST(0.098017133772373),  COEF_CONST(0.049067649990320),  COEF_CONST(-1.000000000000000), COEF_CONST(-1.047863125801086), COEF_CONST(-1.093201875686646), COEF_CONST(-1.135906934738159),
    COEF_CONST(-1.175875544548035), COEF_CONST(-1.213011503219605), COEF_CONST(-1.247225046157837), COEF_CONST(-1.278433918952942), COEF_CONST(-1.306562900543213), COEF_CONST(-1.331544399261475),
    COEF_CONST(-1.353317975997925), COEF_CONST(-1.371831417083740), COEF_CONST(-1.387039899826050), COEF_CONST(-1.398906826972961), COEF_CONST(-1.407403707504273), COEF_CONST(-1.412510156631470),
    COEF_CONST(0.0000000000000000), COEF_CONST(-1.412510156631470), COEF_CONST(-1.407403707504273), COEF_CONST(-1.398906826972961), COEF_CONST(-1.387039899826050), COEF_CONST(-1.371831417083740),
    COEF_CONST(-1.353317975997925), COEF_CONST(-1.331544399261475), COEF_CONST(-1.306562900543213), COEF_CONST(-1.278433918952942), COEF_CONST(-1.247225046157837), COEF_CONST(-1.213011384010315),
    COEF_CONST(-1.175875544548035), COEF_CONST(-1.135907053947449), COEF_CONST(-1.093201875686646), COEF_CONST(-1.047863125801086), COEF_CONST(-1.000000000000000), COEF_CONST(-0.949727773666382),
    COEF_CONST(-0.897167563438416), COEF_CONST(-0.842446029186249), COEF_CONST(-0.785694956779480), COEF_CONST(-0.727051079273224), COEF_CONST(-0.666655659675598), COEF_CONST(-0.604654192924500),
    COEF_CONST(-0.541196048259735), COEF_CONST(-0.476434230804443), COEF_CONST(-0.410524487495422), COEF_CONST(-0.343625843524933), COEF_CONST(-0.275899350643158), COEF_CONST(-0.207508206367493),
    COEF_CONST(-0.138617098331451), COEF_CONST(-0.069392144680023), COEF_CONST(0.000000000000000),  COEF_CONST(0.069392263889313),  COEF_CONST(0.138617157936096),  COEF_CONST(0.207508206367493),
    COEF_CONST(0.275899469852448),  COEF_CONST(0.343625962734222),  COEF_CONST(0.410524636507034),  COEF_CONST(0.476434201002121),  COEF_CONST(0.541196107864380),  COEF_CONST(0.604654192924500),
    COEF_CONST(0.666655719280243),  COEF_CONST(0.727051138877869),  COEF_CONST(0.785695075988770),  COEF_CONST(0.842446029186249),  COEF_CONST(0.897167563438416),  COEF_CONST(0.949727773666382)};

//----------------------------------------------------------------------------------------------------------------------------------------------------
 const complex_t qmf32_pre_twiddle[] = {
    {FRAC_CONST(0.999924701839145), FRAC_CONST(-0.012271538285720)}, {FRAC_CONST(0.999322384588350), FRAC_CONST(-0.036807222941359)}, {FRAC_CONST(0.998118112900149), FRAC_CONST(-0.061320736302209)},
    {FRAC_CONST(0.996312612182778), FRAC_CONST(-0.085797312344440)}, {FRAC_CONST(0.993906970002356), FRAC_CONST(-0.110222207293883)}, {FRAC_CONST(0.990902635427780), FRAC_CONST(-0.134580708507126)},
    {FRAC_CONST(0.987301418157858), FRAC_CONST(-0.158858143333861)}, {FRAC_CONST(0.983105487431216), FRAC_CONST(-0.183039887955141)}, {FRAC_CONST(0.978317370719628), FRAC_CONST(-0.207111376192219)},
    {FRAC_CONST(0.972939952205560), FRAC_CONST(-0.231058108280671)}, {FRAC_CONST(0.966976471044852), FRAC_CONST(-0.254865659604515)}, {FRAC_CONST(0.960430519415566), FRAC_CONST(-0.278519689385053)},
    {FRAC_CONST(0.953306040354194), FRAC_CONST(-0.302005949319228)}, {FRAC_CONST(0.945607325380521), FRAC_CONST(-0.325310292162263)}, {FRAC_CONST(0.937339011912575), FRAC_CONST(-0.348418680249435)},
    {FRAC_CONST(0.928506080473216), FRAC_CONST(-0.371317193951838)}, {FRAC_CONST(0.919113851690058), FRAC_CONST(-0.393992040061048)}, {FRAC_CONST(0.909167983090522), FRAC_CONST(-0.416429560097637)},
    {FRAC_CONST(0.898674465693954), FRAC_CONST(-0.438616238538528)}, {FRAC_CONST(0.887639620402854), FRAC_CONST(-0.460538710958240)}, {FRAC_CONST(0.876070094195407), FRAC_CONST(-0.482183772079123)},
    {FRAC_CONST(0.863972856121587), FRAC_CONST(-0.503538383725718)}, {FRAC_CONST(0.851355193105265), FRAC_CONST(-0.524589682678469)}, {FRAC_CONST(0.838224705554838), FRAC_CONST(-0.545324988422046)},
    {FRAC_CONST(0.824589302785025), FRAC_CONST(-0.565731810783613)}, {FRAC_CONST(0.810457198252595), FRAC_CONST(-0.585797857456439)}, {FRAC_CONST(0.795836904608884), FRAC_CONST(-0.605511041404326)},
    {FRAC_CONST(0.780737228572094), FRAC_CONST(-0.624859488142386)}, {FRAC_CONST(0.765167265622459), FRAC_CONST(-0.643831542889791)}, {FRAC_CONST(0.749136394523459), FRAC_CONST(-0.662415777590172)},
    {FRAC_CONST(0.732654271672413), FRAC_CONST(-0.680600997795453)}, {FRAC_CONST(0.715730825283819), FRAC_CONST(-0.698376249408973)}};

//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 const int32_t log_Qplus1_pan[31][13] = {
    {REAL_CONST(0.044383447617292), REAL_CONST(0.169768601655960), REAL_CONST(0.583090126514435), REAL_CONST(1.570089221000671), REAL_CONST(3.092446088790894), REAL_CONST(4.733354568481445),
     REAL_CONST(6.022367954254150), REAL_CONST(6.692092418670654), REAL_CONST(6.924463272094727), REAL_CONST(6.989034175872803), REAL_CONST(7.005646705627441), REAL_CONST(7.009829998016357),
     REAL_CONST(7.010877609252930)},
    {REAL_CONST(0.022362394258380), REAL_CONST(0.087379962205887), REAL_CONST(0.320804953575134), REAL_CONST(0.988859415054321), REAL_CONST(2.252387046813965), REAL_CONST(3.786596298217773),
     REAL_CONST(5.044394016265869), REAL_CONST(5.705977916717529), REAL_CONST(5.936291694641113), REAL_CONST(6.000346660614014), REAL_CONST(6.016829967498779), REAL_CONST(6.020981311798096),
     REAL_CONST(6.022020816802979)},
    {REAL_CONST(0.011224525049329), REAL_CONST(0.044351425021887), REAL_CONST(0.169301137328148), REAL_CONST(0.577544987201691), REAL_CONST(1.527246952056885), REAL_CONST(2.887525320053101),
     REAL_CONST(4.087462902069092), REAL_CONST(4.733354568481445), REAL_CONST(4.959661006927490), REAL_CONST(5.022709369659424), REAL_CONST(5.038940429687500), REAL_CONST(5.043028831481934),
     REAL_CONST(5.044052600860596)},
    {REAL_CONST(0.005623178556561), REAL_CONST(0.022346137091517), REAL_CONST(0.087132595479488), REAL_CONST(0.317482173442841), REAL_CONST(0.956931233406067), REAL_CONST(2.070389270782471),
     REAL_CONST(3.169924974441528), REAL_CONST(3.786596298217773), REAL_CONST(4.005294322967529), REAL_CONST(4.066420555114746), REAL_CONST(4.082170009613037), REAL_CONST(4.086137294769287),
     REAL_CONST(4.087131500244141)},
    {REAL_CONST(0.002814328996465), REAL_CONST(0.011216334067285), REAL_CONST(0.044224001467228), REAL_CONST(0.167456731200218), REAL_CONST(0.556393325328827), REAL_CONST(1.378511548042297),
     REAL_CONST(2.321928024291992), REAL_CONST(2.887525320053101), REAL_CONST(3.092446088790894), REAL_CONST(3.150059700012207), REAL_CONST(3.164926528930664), REAL_CONST(3.168673276901245),
     REAL_CONST(3.169611930847168)},
    {REAL_CONST(0.001407850766554), REAL_CONST(0.005619067233056), REAL_CONST(0.022281449288130), REAL_CONST(0.086156636476517), REAL_CONST(0.304854571819305), REAL_CONST(0.847996890544891),
     REAL_CONST(1.584962487220764), REAL_CONST(2.070389270782471), REAL_CONST(2.252387046813965), REAL_CONST(2.304061651229858), REAL_CONST(2.317430257797241), REAL_CONST(2.320801734924316),
     REAL_CONST(2.321646213531494)},
    {REAL_CONST(0.000704097095877), REAL_CONST(0.002812269143760), REAL_CONST(0.011183738708496), REAL_CONST(0.043721374124289), REAL_CONST(0.160464659333229), REAL_CONST(0.485426813364029),
     REAL_CONST(1.000000000000000), REAL_CONST(1.378511548042297), REAL_CONST(1.527246952056885), REAL_CONST(1.570089221000671), REAL_CONST(1.581215262413025), REAL_CONST(1.584023833274841),
     REAL_CONST(1.584727644920349)},
    {REAL_CONST(0.000352177477907), REAL_CONST(0.001406819908880), REAL_CONST(0.005602621007711), REAL_CONST(0.022026389837265), REAL_CONST(0.082462236285210), REAL_CONST(0.263034462928772),
     REAL_CONST(0.584962487220764), REAL_CONST(0.847996890544891), REAL_CONST(0.956931233406067), REAL_CONST(0.988859415054321), REAL_CONST(0.997190535068512), REAL_CONST(0.999296069145203),
     REAL_CONST(0.999823868274689)},
    {REAL_CONST(0.000176099492819), REAL_CONST(0.000703581434209), REAL_CONST(0.002804030198604), REAL_CONST(0.011055230163038), REAL_CONST(0.041820213198662), REAL_CONST(0.137503549456596),
     REAL_CONST(0.321928083896637), REAL_CONST(0.485426813364029), REAL_CONST(0.556393325328827), REAL_CONST(0.577544987201691), REAL_CONST(0.583090126514435), REAL_CONST(0.584493279457092),
     REAL_CONST(0.584845066070557)},
    {REAL_CONST(0.000088052431238), REAL_CONST(0.000351833587047), REAL_CONST(0.001402696361765), REAL_CONST(0.005538204684854), REAL_CONST(0.021061634644866), REAL_CONST(0.070389263331890),
     REAL_CONST(0.169925004243851), REAL_CONST(0.263034462928772), REAL_CONST(0.304854571819305), REAL_CONST(0.317482173442841), REAL_CONST(0.320804953575134), REAL_CONST(0.321646571159363),
     REAL_CONST(0.321857661008835)},
    {REAL_CONST(0.000044026888645), REAL_CONST(0.000175927518285), REAL_CONST(0.000701518612914), REAL_CONST(0.002771759871393), REAL_CONST(0.010569252073765), REAL_CONST(0.035623874515295),
     REAL_CONST(0.087462842464447), REAL_CONST(0.137503549456596), REAL_CONST(0.160464659333229), REAL_CONST(0.167456731200218), REAL_CONST(0.169301137328148), REAL_CONST(0.169768601655960),
     REAL_CONST(0.169885858893394)},
    {REAL_CONST(0.000022013611670), REAL_CONST(0.000088052431238), REAL_CONST(0.000350801943569), REAL_CONST(0.001386545598507), REAL_CONST(0.005294219125062), REAL_CONST(0.017921976745129),
     REAL_CONST(0.044394120573997), REAL_CONST(0.070389263331890), REAL_CONST(0.082462236285210), REAL_CONST(0.086156636476517), REAL_CONST(0.087132595479488), REAL_CONST(0.087379962205887),
     REAL_CONST(0.087442122399807)},
    {REAL_CONST(0.000011006847672), REAL_CONST(0.000044026888645), REAL_CONST(0.000175411638338), REAL_CONST(0.000693439331371), REAL_CONST(0.002649537986144), REAL_CONST(0.008988817222416),
     REAL_CONST(0.022367812693119), REAL_CONST(0.035623874515295), REAL_CONST(0.041820213198662), REAL_CONST(0.043721374124289), REAL_CONST(0.044224001467228), REAL_CONST(0.044351425021887),
     REAL_CONST(0.044383447617292)},
    {REAL_CONST(0.000005503434295), REAL_CONST(0.000022013611670), REAL_CONST(0.000087708482170), REAL_CONST(0.000346675369656), REAL_CONST(0.001325377263129), REAL_CONST(0.004501323681325),
     REAL_CONST(0.011227255687118), REAL_CONST(0.017921976745129), REAL_CONST(0.021061634644866), REAL_CONST(0.022026389837265), REAL_CONST(0.022281449288130), REAL_CONST(0.022346137091517),
     REAL_CONST(0.022362394258380)},
    {REAL_CONST(0.000002751719876), REAL_CONST(0.000011006847672), REAL_CONST(0.000043854910473), REAL_CONST(0.000173348103999), REAL_CONST(0.000662840844598), REAL_CONST(0.002252417383716),
     REAL_CONST(0.005624548997730), REAL_CONST(0.008988817222416), REAL_CONST(0.010569252073765), REAL_CONST(0.011055230163038), REAL_CONST(0.011183738708496), REAL_CONST(0.011216334067285),
     REAL_CONST(0.011224525049329)},
    {REAL_CONST(0.000001375860506), REAL_CONST(0.000005503434295), REAL_CONST(0.000022013611670), REAL_CONST(0.000086676649516), REAL_CONST(0.000331544462824), REAL_CONST(0.001126734190620),
     REAL_CONST(0.002815015614033), REAL_CONST(0.004501323681325), REAL_CONST(0.005294219125062), REAL_CONST(0.005538204684854), REAL_CONST(0.005602621007711), REAL_CONST(0.005619067233056),
     REAL_CONST(0.005623178556561)},
    {REAL_CONST(0.000000687930424), REAL_CONST(0.000002751719876), REAL_CONST(0.000011006847672), REAL_CONST(0.000043338975956), REAL_CONST(0.000165781748365), REAL_CONST(0.000563477107789),
     REAL_CONST(0.001408194424585), REAL_CONST(0.002252417383716), REAL_CONST(0.002649537986144), REAL_CONST(0.002771759871393), REAL_CONST(0.002804030198604), REAL_CONST(0.002812269143760),
     REAL_CONST(0.002814328996465)},
    {REAL_CONST(0.000000343965269), REAL_CONST(0.000001375860506), REAL_CONST(0.000005503434295), REAL_CONST(0.000021669651687), REAL_CONST(0.000082893253420), REAL_CONST(0.000281680084299),
     REAL_CONST(0.000704268983100), REAL_CONST(0.001126734190620), REAL_CONST(0.001325377263129), REAL_CONST(0.001386545598507), REAL_CONST(0.001402696361765), REAL_CONST(0.001406819908880),
     REAL_CONST(0.001407850766554)},
    {REAL_CONST(0.000000171982634), REAL_CONST(0.000000687930424), REAL_CONST(0.000002751719876), REAL_CONST(0.000010834866771), REAL_CONST(0.000041447223339), REAL_CONST(0.000140846910654),
     REAL_CONST(0.000352177477907), REAL_CONST(0.000563477107789), REAL_CONST(0.000662840844598), REAL_CONST(0.000693439331371), REAL_CONST(0.000701518612914), REAL_CONST(0.000703581434209),
     REAL_CONST(0.000704097095877)},
    {REAL_CONST(0.000000000000000), REAL_CONST(0.000000343965269), REAL_CONST(0.000001375860506), REAL_CONST(0.000005503434295), REAL_CONST(0.000020637769921), REAL_CONST(0.000070511166996),
     REAL_CONST(0.000176099492819), REAL_CONST(0.000281680084299), REAL_CONST(0.000331544462824), REAL_CONST(0.000346675369656), REAL_CONST(0.000350801943569), REAL_CONST(0.000351833587047),
     REAL_CONST(0.000352177477907)},
    {REAL_CONST(0.000000000000000), REAL_CONST(0.000000171982634), REAL_CONST(0.000000687930424), REAL_CONST(0.000002751719876), REAL_CONST(0.000010318922250), REAL_CONST(0.000035256012779),
     REAL_CONST(0.000088052431238), REAL_CONST(0.000140846910654), REAL_CONST(0.000165781748365), REAL_CONST(0.000173348103999), REAL_CONST(0.000175411638338), REAL_CONST(0.000175927518285),
     REAL_CONST(0.000176099492819)},
    {REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000343965269), REAL_CONST(0.000001375860506), REAL_CONST(0.000005159470220), REAL_CONST(0.000017542124624),
     REAL_CONST(0.000044026888645), REAL_CONST(0.000070511166996), REAL_CONST(0.000082893253420), REAL_CONST(0.000086676649516), REAL_CONST(0.000087708482170), REAL_CONST(0.000088052431238),
     REAL_CONST(0.000088052431238)},
    {REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000171982634), REAL_CONST(0.000000687930424), REAL_CONST(0.000002579737384), REAL_CONST(0.000008771088687),
     REAL_CONST(0.000022013611670), REAL_CONST(0.000035256012779), REAL_CONST(0.000041447223339), REAL_CONST(0.000043338975956), REAL_CONST(0.000043854910473), REAL_CONST(0.000044026888645),
     REAL_CONST(0.000044026888645)},
    {REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000343965269), REAL_CONST(0.000001375860506), REAL_CONST(0.000004471542070),
     REAL_CONST(0.000011006847672), REAL_CONST(0.000017542124624), REAL_CONST(0.000020637769921), REAL_CONST(0.000021669651687), REAL_CONST(0.000022013611670), REAL_CONST(0.000022013611670),
     REAL_CONST(0.000022013611670)},
    {REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000171982634), REAL_CONST(0.000000687930424), REAL_CONST(0.000002235772627),
     REAL_CONST(0.000005503434295), REAL_CONST(0.000008771088687), REAL_CONST(0.000010318922250), REAL_CONST(0.000010834866771), REAL_CONST(0.000011006847672), REAL_CONST(0.000011006847672),
     REAL_CONST(0.000011006847672)},
    {REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000343965269), REAL_CONST(0.000001031895522),
     REAL_CONST(0.000002751719876), REAL_CONST(0.000004471542070), REAL_CONST(0.000005159470220), REAL_CONST(0.000005503434295), REAL_CONST(0.000005503434295), REAL_CONST(0.000005503434295),
     REAL_CONST(0.000005503434295)},
    {REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000171982634), REAL_CONST(0.000000515947875),
     REAL_CONST(0.000001375860506), REAL_CONST(0.000002235772627), REAL_CONST(0.000002579737384), REAL_CONST(0.000002751719876), REAL_CONST(0.000002751719876), REAL_CONST(0.000002751719876),
     REAL_CONST(0.000002751719876)},
    {REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000343965269),
     REAL_CONST(0.000000687930424), REAL_CONST(0.000001031895522), REAL_CONST(0.000001375860506), REAL_CONST(0.000001375860506), REAL_CONST(0.000001375860506), REAL_CONST(0.000001375860506),
     REAL_CONST(0.000001375860506)},
    {REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000171982634),
     REAL_CONST(0.000000343965269), REAL_CONST(0.000000515947875), REAL_CONST(0.000000687930424), REAL_CONST(0.000000687930424), REAL_CONST(0.000000687930424), REAL_CONST(0.000000687930424),
     REAL_CONST(0.000000687930424)},
    {REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000),
     REAL_CONST(0.000000171982634), REAL_CONST(0.000000343965269), REAL_CONST(0.000000343965269), REAL_CONST(0.000000343965269), REAL_CONST(0.000000343965269), REAL_CONST(0.000000343965269),
     REAL_CONST(0.000000343965269)},
    {REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000), REAL_CONST(0.000000000000000),
     REAL_CONST(0.000000000000000), REAL_CONST(0.000000171982634), REAL_CONST(0.000000171982634), REAL_CONST(0.000000171982634), REAL_CONST(0.000000171982634), REAL_CONST(0.000000171982634),
     REAL_CONST(0.000000171982634)}};

 const int32_t log_Qplus1[31] = {REAL_CONST(6.022367813028454), REAL_CONST(5.044394119358453), REAL_CONST(4.087462841250339), REAL_CONST(3.169925001442313), REAL_CONST(2.321928094887362),
                                       REAL_CONST(1.584962500721156), REAL_CONST(1.000000000000000), REAL_CONST(0.584962500721156), REAL_CONST(0.321928094887362), REAL_CONST(0.169925001442312),
                                       REAL_CONST(0.087462841250339), REAL_CONST(0.044394119358453), REAL_CONST(0.022367813028455), REAL_CONST(0.011227255423254), REAL_CONST(0.005624549193878),
                                       REAL_CONST(0.002815015607054), REAL_CONST(0.001408194392808), REAL_CONST(0.000704269011247), REAL_CONST(0.000352177480301), REAL_CONST(0.000176099486443),
                                       REAL_CONST(0.000088052430122), REAL_CONST(0.000044026886827), REAL_CONST(0.000022013611360), REAL_CONST(0.000011006847667), REAL_CONST(0.000005503434331),
                                       REAL_CONST(0.000002751719790), REAL_CONST(0.000001375860551), REAL_CONST(0.000000687930439), REAL_CONST(0.000000343965261), REAL_CONST(0.000000171982641),
                                       REAL_CONST(0.000000000000000)};

//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// clang-format off
/* log2 values of [0..63] */
 const int32_t log2_int_tab[] = {
    LOG2_MIN_INF,
    REAL_CONST(0.000000000000000), REAL_CONST(1.000000000000000), REAL_CONST(1.584962500721156), REAL_CONST(2.000000000000000), REAL_CONST(2.321928094887362), REAL_CONST(2.584962500721156),
     REAL_CONST(2.807354922057604), REAL_CONST(3.000000000000000), REAL_CONST(3.169925001442313), REAL_CONST(3.321928094887363), REAL_CONST(3.459431618637297), REAL_CONST(3.584962500721156),
     REAL_CONST(3.700439718141092), REAL_CONST(3.807354922057604), REAL_CONST(3.906890595608519), REAL_CONST(4.000000000000000), REAL_CONST(4.087462841250339), REAL_CONST(4.169925001442312),
     REAL_CONST(4.247927513443585), REAL_CONST(4.321928094887362), REAL_CONST(4.392317422778761), REAL_CONST(4.459431618637297), REAL_CONST(4.523561956057013), REAL_CONST(4.584962500721156),
     REAL_CONST(4.643856189774724), REAL_CONST(4.700439718141093), REAL_CONST(4.754887502163468), REAL_CONST(4.807354922057604), REAL_CONST(4.857980995127572), REAL_CONST(4.906890595608519),
     REAL_CONST(4.954196310386875), REAL_CONST(5.000000000000000), REAL_CONST(5.044394119358453), REAL_CONST(5.087462841250340), REAL_CONST(5.129283016944966), REAL_CONST(5.169925001442312),
     REAL_CONST(5.209453365628949), REAL_CONST(5.247927513443585), REAL_CONST(5.285402218862248), REAL_CONST(5.321928094887363), REAL_CONST(5.357552004618084), REAL_CONST(5.392317422778761),
     REAL_CONST(5.426264754702098), REAL_CONST(5.459431618637297), REAL_CONST(5.491853096329675), REAL_CONST(5.523561956057013), REAL_CONST(5.554588851677637), REAL_CONST(5.584962500721156),
     REAL_CONST(5.614709844115208), REAL_CONST(5.643856189774724), REAL_CONST(5.672425341971495), REAL_CONST(5.700439718141093), REAL_CONST(5.727920454563200), REAL_CONST(5.754887502163469),
     REAL_CONST(5.781359713524660), REAL_CONST(5.807354922057605), REAL_CONST(5.832890014164742), REAL_CONST(5.857980995127572), REAL_CONST(5.882643049361842), REAL_CONST(5.906890595608518),
     REAL_CONST(5.930737337562887), REAL_CONST(5.954196310386876), REAL_CONST(5.977279923499916)};

 const int32_t pan_log2_tab[] = {REAL_CONST(1.000000000000000), REAL_CONST(0.584962500721156), REAL_CONST(0.321928094887362), REAL_CONST(0.169925001442312), REAL_CONST(0.087462841250339),
                                       REAL_CONST(0.044394119358453), REAL_CONST(0.022367813028455), REAL_CONST(0.011227255423254), REAL_CONST(0.005624549193878), REAL_CONST(0.002815015607054),
                                       REAL_CONST(0.001408194392808), REAL_CONST(0.000704269011247), REAL_CONST(0.000352177480301), REAL_CONST(0.000176099486443), REAL_CONST(0.000088052430122),
                                       REAL_CONST(0.000044026886827), REAL_CONST(0.000022013611360), REAL_CONST(0.000011006847667)};
// clang-format on

/*Table 1.A.13 Noise table V*/
 const complex_t noise_V[] = {
    {FRAC_CONST(-0.99948155879974), FRAC_CONST(-0.59483414888382)}, {FRAC_CONST(0.97113454341888), FRAC_CONST(-0.67528516054153)},  {FRAC_CONST(0.14130051434040), FRAC_CONST(-0.95090985298157)},
    {FRAC_CONST(-0.47005495429039), FRAC_CONST(-0.37340548634529)}, {FRAC_CONST(0.80705064535141), FRAC_CONST(0.29653668403625)},   {FRAC_CONST(-0.38981479406357), FRAC_CONST(0.89572608470917)},
    {FRAC_CONST(-0.01053049881011), FRAC_CONST(-0.66959059238434)}, {FRAC_CONST(-0.91266369819641), FRAC_CONST(-0.11522938311100)}, {FRAC_CONST(0.54840421676636), FRAC_CONST(0.75221365690231)},
    {FRAC_CONST(0.40009254217148), FRAC_CONST(-0.98929399251938)},  {FRAC_CONST(-0.99867975711823), FRAC_CONST(-0.88147068023682)}, {FRAC_CONST(-0.95531076192856), FRAC_CONST(0.90908759832382)},
    {FRAC_CONST(-0.45725932717323), FRAC_CONST(-0.56716322898865)}, {FRAC_CONST(-0.72929674386978), FRAC_CONST(-0.98008275032043)}, {FRAC_CONST(0.75622802972794), FRAC_CONST(0.20950329303741)},
    {FRAC_CONST(0.07069442421198), FRAC_CONST(-0.78247898817062)},  {FRAC_CONST(0.74496251344681), FRAC_CONST(-0.91169005632401)},  {FRAC_CONST(-0.96440184116364), FRAC_CONST(-0.94739919900894)},
    {FRAC_CONST(0.30424630641937), FRAC_CONST(-0.49438267946243)},  {FRAC_CONST(0.66565030813217), FRAC_CONST(0.64652937650681)},   {FRAC_CONST(0.91697007417679), FRAC_CONST(0.17514097690582)},
    {FRAC_CONST(-0.70774918794632), FRAC_CONST(0.52548652887344)},  {FRAC_CONST(-0.70051413774490), FRAC_CONST(-0.45340028405190)}, {FRAC_CONST(-0.99496513605118), FRAC_CONST(-0.90071910619736)},
    {FRAC_CONST(0.98164492845535), FRAC_CONST(-0.77463155984879)},  {FRAC_CONST(-0.54671579599380), FRAC_CONST(-0.02570928446949)}, {FRAC_CONST(-0.01689629070461), FRAC_CONST(0.00287506449968)},
    {FRAC_CONST(-0.86110347509384), FRAC_CONST(0.42548584938049)},  {FRAC_CONST(-0.98892980813980), FRAC_CONST(-0.87881129980087)}, {FRAC_CONST(0.51756626367569), FRAC_CONST(0.66926783323288)},
    {FRAC_CONST(-0.99635028839111), FRAC_CONST(-0.58107727766037)}, {FRAC_CONST(-0.99969369173050), FRAC_CONST(0.98369991779327)},  {FRAC_CONST(0.55266261100769), FRAC_CONST(0.59449058771133)},
    {FRAC_CONST(0.34581178426743), FRAC_CONST(0.94879418611526)},   {FRAC_CONST(0.62664210796356), FRAC_CONST(-0.74402970075607)},  {FRAC_CONST(-0.77149701118469), FRAC_CONST(-0.33883658051491)},
    {FRAC_CONST(-0.91592246294022), FRAC_CONST(0.03687901422381)},  {FRAC_CONST(-0.76285493373871), FRAC_CONST(-0.91371870040894)}, {FRAC_CONST(0.79788339138031), FRAC_CONST(-0.93180972337723)},
    {FRAC_CONST(0.54473078250885), FRAC_CONST(-0.11919206380844)},  {FRAC_CONST(-0.85639280080795), FRAC_CONST(0.42429855465889)},  {FRAC_CONST(-0.92882400751114), FRAC_CONST(0.27871808409691)},
    {FRAC_CONST(-0.11708371341228), FRAC_CONST(-0.99800843000412)}, {FRAC_CONST(0.21356749534607), FRAC_CONST(-0.90716296434402)},  {FRAC_CONST(-0.76191693544388), FRAC_CONST(0.99768120050430)},
    {FRAC_CONST(0.98111045360565), FRAC_CONST(-0.95854461193085)},  {FRAC_CONST(-0.85913270711899), FRAC_CONST(0.95766568183899)},  {FRAC_CONST(-0.93307244777679), FRAC_CONST(0.49431759119034)},
    {FRAC_CONST(0.30485755205154), FRAC_CONST(-0.70540034770966)},  {FRAC_CONST(0.85289651155472), FRAC_CONST(0.46766132116318)},   {FRAC_CONST(0.91328084468842), FRAC_CONST(-0.99839597940445)},
    {FRAC_CONST(-0.05890199914575), FRAC_CONST(0.70741826295853)},  {FRAC_CONST(0.28398686647415), FRAC_CONST(0.34633556008339)},   {FRAC_CONST(0.95258164405823), FRAC_CONST(-0.54893416166306)},
    {FRAC_CONST(-0.78566324710846), FRAC_CONST(-0.75568538904190)}, {FRAC_CONST(-0.95789498090744), FRAC_CONST(-0.20423194766045)}, {FRAC_CONST(0.82411158084869), FRAC_CONST(0.96654617786407)},
    {FRAC_CONST(-0.65185445547104), FRAC_CONST(-0.88734990358353)}, {FRAC_CONST(-0.93643605709076), FRAC_CONST(0.99870789051056)},  {FRAC_CONST(0.91427159309387), FRAC_CONST(-0.98290503025055)},
    {FRAC_CONST(-0.70395684242249), FRAC_CONST(0.58796799182892)},  {FRAC_CONST(0.00563771976158), FRAC_CONST(0.61768198013306)},   {FRAC_CONST(0.89065051078796), FRAC_CONST(0.52783352136612)},
    {FRAC_CONST(-0.68683707714081), FRAC_CONST(0.80806946754456)},  {FRAC_CONST(0.72165340185165), FRAC_CONST(-0.69259858131409)},  {FRAC_CONST(-0.62928247451782), FRAC_CONST(0.13627037405968)},
    {FRAC_CONST(0.29938435554504), FRAC_CONST(-0.46051329374313)},  {FRAC_CONST(-0.91781955957413), FRAC_CONST(-0.74012714624405)}, {FRAC_CONST(0.99298715591431), FRAC_CONST(0.40816611051559)},
    {FRAC_CONST(0.82368296384811), FRAC_CONST(-0.74036049842834)},  {FRAC_CONST(-0.98512834310532), FRAC_CONST(-0.99972331523895)}, {FRAC_CONST(-0.95915371179581), FRAC_CONST(-0.99237799644470)},
    {FRAC_CONST(-0.21411126852036), FRAC_CONST(-0.93424820899963)}, {FRAC_CONST(-0.68821477890015), FRAC_CONST(-0.26892307400703)}, {FRAC_CONST(0.91851997375488), FRAC_CONST(0.09358228743076)},
    {FRAC_CONST(-0.96062767505646), FRAC_CONST(0.36099094152451)},  {FRAC_CONST(0.51646184921265), FRAC_CONST(-0.71373331546783)},  {FRAC_CONST(0.61130720376968), FRAC_CONST(0.46950140595436)},
    {FRAC_CONST(0.47336128354073), FRAC_CONST(-0.27333179116249)},  {FRAC_CONST(0.90998309850693), FRAC_CONST(0.96715664863586)},   {FRAC_CONST(0.44844800233841), FRAC_CONST(0.99211573600769)},
    {FRAC_CONST(0.66614890098572), FRAC_CONST(0.96590173244476)},   {FRAC_CONST(0.74922239780426), FRAC_CONST(-0.89879858493805)},  {FRAC_CONST(-0.99571585655212), FRAC_CONST(0.52785521745682)},
    {FRAC_CONST(0.97401082515717), FRAC_CONST(-0.16855870187283)},  {FRAC_CONST(0.72683745622635), FRAC_CONST(-0.48060774803162)},  {FRAC_CONST(0.95432192087173), FRAC_CONST(0.68849605321884)},
    {FRAC_CONST(-0.72962206602097), FRAC_CONST(-0.76608443260193)}, {FRAC_CONST(-0.85359477996826), FRAC_CONST(0.88738125562668)},  {FRAC_CONST(-0.81412428617477), FRAC_CONST(-0.97480767965317)},
    {FRAC_CONST(-0.87930774688721), FRAC_CONST(0.74748307466507)},  {FRAC_CONST(-0.71573328971863), FRAC_CONST(-0.98570609092712)}, {FRAC_CONST(0.83524298667908), FRAC_CONST(0.83702534437180)},
    {FRAC_CONST(-0.48086065053940), FRAC_CONST(-0.98848503828049)}, {FRAC_CONST(0.97139126062393), FRAC_CONST(0.80093622207642)},   {FRAC_CONST(0.51992827653885), FRAC_CONST(0.80247628688812)},
    {FRAC_CONST(-0.00848591234535), FRAC_CONST(-0.76670128107071)}, {FRAC_CONST(-0.70294374227524), FRAC_CONST(0.55359911918640)},  {FRAC_CONST(-0.95894426107407), FRAC_CONST(-0.43265503644943)},
    {FRAC_CONST(0.97079253196716), FRAC_CONST(0.09325857460499)},   {FRAC_CONST(-0.92404294013977), FRAC_CONST(0.85507702827454)},  {FRAC_CONST(-0.69506472349167), FRAC_CONST(0.98633414506912)},
    {FRAC_CONST(0.26559203863144), FRAC_CONST(0.73314309120178)},   {FRAC_CONST(0.28038442134857), FRAC_CONST(0.14537914097309)},   {FRAC_CONST(-0.74138122797012), FRAC_CONST(0.99310338497162)},
    {FRAC_CONST(-0.01752796024084), FRAC_CONST(-0.82616633176804)}, {FRAC_CONST(-0.55126774311066), FRAC_CONST(-0.98898541927338)}, {FRAC_CONST(0.97960901260376), FRAC_CONST(-0.94021445512772)},
    {FRAC_CONST(-0.99196308851242), FRAC_CONST(0.67019015550613)},  {FRAC_CONST(-0.67684930562973), FRAC_CONST(0.12631492316723)},  {FRAC_CONST(0.09140039235353), FRAC_CONST(-0.20537731051445)},
    {FRAC_CONST(-0.71658962965012), FRAC_CONST(-0.97788202762604)}, {FRAC_CONST(0.81014639139175), FRAC_CONST(0.53722649812698)},   {FRAC_CONST(0.40616992115974), FRAC_CONST(-0.26469007134438)},
    {FRAC_CONST(-0.67680186033249), FRAC_CONST(0.94502049684525)},  {FRAC_CONST(0.86849772930145), FRAC_CONST(-0.18333598971367)},  {FRAC_CONST(-0.99500381946564), FRAC_CONST(-0.02634122036397)},
    {FRAC_CONST(0.84329187870026), FRAC_CONST(0.10406957566738)},   {FRAC_CONST(-0.09215968847275), FRAC_CONST(0.69540011882782)},  {FRAC_CONST(0.99956172704697), FRAC_CONST(-0.12358541786671)},
    {FRAC_CONST(-0.79732781648636), FRAC_CONST(-0.91582524776459)}, {FRAC_CONST(0.96349972486496), FRAC_CONST(0.96640455722809)},   {FRAC_CONST(-0.79942780733109), FRAC_CONST(0.64323902130127)},
    {FRAC_CONST(-0.11566039919853), FRAC_CONST(0.28587844967842)},  {FRAC_CONST(-0.39922955632210), FRAC_CONST(0.94129604101181)},  {FRAC_CONST(0.99089199304581), FRAC_CONST(-0.92062628269196)},
    {FRAC_CONST(0.28631284832954), FRAC_CONST(-0.91035044193268)},  {FRAC_CONST(-0.83302724361420), FRAC_CONST(-0.67330408096313)}, {FRAC_CONST(0.95404446125031), FRAC_CONST(0.49162766337395)},
    {FRAC_CONST(-0.06449863314629), FRAC_CONST(0.03250560909510)},  {FRAC_CONST(-0.99575054645538), FRAC_CONST(0.42389783263206)},  {FRAC_CONST(-0.65501141548157), FRAC_CONST(0.82546114921570)},
    {FRAC_CONST(-0.81254440546036), FRAC_CONST(-0.51627236604691)}, {FRAC_CONST(-0.99646371603012), FRAC_CONST(0.84490531682968)},  {FRAC_CONST(0.00287840608507), FRAC_CONST(0.64768260717392)},
    {FRAC_CONST(0.70176988840103), FRAC_CONST(-0.20453028380871)},  {FRAC_CONST(0.96361881494522), FRAC_CONST(0.40706968307495)},   {FRAC_CONST(-0.68883758783340), FRAC_CONST(0.91338956356049)},
    {FRAC_CONST(-0.34875586628914), FRAC_CONST(0.71472293138504)},  {FRAC_CONST(0.91980081796646), FRAC_CONST(0.66507452726364)},   {FRAC_CONST(-0.99009048938751), FRAC_CONST(0.85868018865585)},
    {FRAC_CONST(0.68865793943405), FRAC_CONST(0.55660319328308)},   {FRAC_CONST(-0.99484401941299), FRAC_CONST(-0.20052559673786)}, {FRAC_CONST(0.94214510917664), FRAC_CONST(-0.99696427583694)},
    {FRAC_CONST(-0.67414629459381), FRAC_CONST(0.49548220634460)},  {FRAC_CONST(-0.47339352965355), FRAC_CONST(-0.85904330015182)}, {FRAC_CONST(0.14323651790619), FRAC_CONST(-0.94145596027374)},
    {FRAC_CONST(-0.29268294572830), FRAC_CONST(0.05759225040674)},  {FRAC_CONST(0.43793860077858), FRAC_CONST(-0.78904968500137)},  {FRAC_CONST(-0.36345127224922), FRAC_CONST(0.64874434471130)},
    {FRAC_CONST(-0.08750604838133), FRAC_CONST(0.97686946392059)},  {FRAC_CONST(-0.96495270729065), FRAC_CONST(-0.53960305452347)}, {FRAC_CONST(0.55526942014694), FRAC_CONST(0.78891521692276)},
    {FRAC_CONST(0.73538213968277), FRAC_CONST(0.96452075242996)},   {FRAC_CONST(-0.30889773368835), FRAC_CONST(-0.80664390325546)}, {FRAC_CONST(0.03574995696545), FRAC_CONST(-0.97325617074966)},
    {FRAC_CONST(0.98720687627792), FRAC_CONST(0.48409134149551)},   {FRAC_CONST(-0.81689298152924), FRAC_CONST(-0.90827703475952)}, {FRAC_CONST(0.67866861820221), FRAC_CONST(0.81284505128860)},
    {FRAC_CONST(-0.15808570384979), FRAC_CONST(0.85279554128647)},  {FRAC_CONST(0.80723392963409), FRAC_CONST(-0.24717418849468)},  {FRAC_CONST(0.47788757085800), FRAC_CONST(-0.46333149075508)},
    {FRAC_CONST(0.96367555856705), FRAC_CONST(0.38486748933792)},   {FRAC_CONST(-0.99143874645233), FRAC_CONST(-0.24945276975632)}, {FRAC_CONST(0.83081877231598), FRAC_CONST(-0.94780850410461)},
    {FRAC_CONST(-0.58753192424774), FRAC_CONST(0.01290772389621)},  {FRAC_CONST(0.95538109540939), FRAC_CONST(-0.85557049512863)},  {FRAC_CONST(-0.96490919589996), FRAC_CONST(-0.64020973443985)},
    {FRAC_CONST(-0.97327101230621), FRAC_CONST(0.12378127872944)},  {FRAC_CONST(0.91400367021561), FRAC_CONST(0.57972472906113)},   {FRAC_CONST(-0.99925839900970), FRAC_CONST(0.71084845066071)},
    {FRAC_CONST(-0.86875903606415), FRAC_CONST(-0.20291699469090)}, {FRAC_CONST(-0.26240035891533), FRAC_CONST(-0.68264555931091)}, {FRAC_CONST(-0.24664412438869), FRAC_CONST(-0.87642270326614)},
    {FRAC_CONST(0.02416275814176), FRAC_CONST(0.27192914485931)},   {FRAC_CONST(0.82068622112274), FRAC_CONST(-0.85087788105011)},  {FRAC_CONST(0.88547372817993), FRAC_CONST(-0.89636802673340)},
    {FRAC_CONST(-0.18173077702522), FRAC_CONST(-0.26152145862579)}, {FRAC_CONST(0.09355476498604), FRAC_CONST(0.54845124483109)},   {FRAC_CONST(-0.54668414592743), FRAC_CONST(0.95980775356293)},
    {FRAC_CONST(0.37050989270210), FRAC_CONST(-0.59910142421722)},  {FRAC_CONST(-0.70373594760895), FRAC_CONST(0.91227668523788)},  {FRAC_CONST(-0.34600785374641), FRAC_CONST(-0.99441426992416)},
    {FRAC_CONST(-0.68774479627609), FRAC_CONST(-0.30238837003708)}, {FRAC_CONST(-0.26843291521072), FRAC_CONST(0.83115667104721)},  {FRAC_CONST(0.49072334170341), FRAC_CONST(-0.45359709858894)},
    {FRAC_CONST(0.38975992798805), FRAC_CONST(0.95515358448029)},   {FRAC_CONST(-0.97757124900818), FRAC_CONST(0.05305894464254)},  {FRAC_CONST(-0.17325553297997), FRAC_CONST(-0.92770671844482)},
    {FRAC_CONST(0.99948036670685), FRAC_CONST(0.58285546302795)},   {FRAC_CONST(-0.64946246147156), FRAC_CONST(0.68645507097244)},  {FRAC_CONST(-0.12016920745373), FRAC_CONST(-0.57147324085236)},
    {FRAC_CONST(-0.58947455883026), FRAC_CONST(-0.34847131371498)}, {FRAC_CONST(-0.41815140843391), FRAC_CONST(0.16276422142982)},  {FRAC_CONST(0.99885648488998), FRAC_CONST(0.11136095225811)},
    {FRAC_CONST(-0.56649613380432), FRAC_CONST(-0.90494865179062)}, {FRAC_CONST(0.94138020277023), FRAC_CONST(0.35281917452812)},   {FRAC_CONST(-0.75725078582764), FRAC_CONST(0.53650552034378)},
    {FRAC_CONST(0.20541973412037), FRAC_CONST(-0.94435143470764)},  {FRAC_CONST(0.99980372190475), FRAC_CONST(0.79835915565491)},   {FRAC_CONST(0.29078277945518), FRAC_CONST(0.35393777489662)},
    {FRAC_CONST(-0.62858772277832), FRAC_CONST(0.38765692710876)},  {FRAC_CONST(0.43440905213356), FRAC_CONST(-0.98546332120895)},  {FRAC_CONST(-0.98298585414886), FRAC_CONST(0.21021524071693)},
    {FRAC_CONST(0.19513028860092), FRAC_CONST(-0.94239830970764)},  {FRAC_CONST(-0.95476663112640), FRAC_CONST(0.98364555835724)},  {FRAC_CONST(0.93379634618759), FRAC_CONST(-0.70881992578506)},
    {FRAC_CONST(-0.85235410928726), FRAC_CONST(-0.08342348039150)}, {FRAC_CONST(-0.86425095796585), FRAC_CONST(-0.45795026421547)}, {FRAC_CONST(0.38879778981209), FRAC_CONST(0.97274428606033)},
    {FRAC_CONST(0.92045122385025), FRAC_CONST(-0.62433654069901)},  {FRAC_CONST(0.89162534475327), FRAC_CONST(0.54950958490372)},   {FRAC_CONST(-0.36834338307381), FRAC_CONST(0.96458297967911)},
    {FRAC_CONST(0.93891763687134), FRAC_CONST(-0.89968353509903)},  {FRAC_CONST(0.99267655611038), FRAC_CONST(-0.03757034242153)},  {FRAC_CONST(-0.94063472747803), FRAC_CONST(0.41332337260246)},
    {FRAC_CONST(0.99740225076675), FRAC_CONST(-0.16830494999886)},  {FRAC_CONST(-0.35899412631989), FRAC_CONST(-0.46633225679398)}, {FRAC_CONST(0.05237237364054), FRAC_CONST(-0.25640362501144)},
    {FRAC_CONST(0.36703583598137), FRAC_CONST(-0.38653266429901)},  {FRAC_CONST(0.91653180122375), FRAC_CONST(-0.30587628483772)},  {FRAC_CONST(0.69000804424286), FRAC_CONST(0.90952169895172)},
    {FRAC_CONST(-0.38658750057220), FRAC_CONST(0.99501574039459)},  {FRAC_CONST(-0.29250815510750), FRAC_CONST(0.37444993853569)},  {FRAC_CONST(-0.60182201862335), FRAC_CONST(0.86779648065567)},
    {FRAC_CONST(-0.97418588399887), FRAC_CONST(0.96468526124954)},  {FRAC_CONST(0.88461571931839), FRAC_CONST(0.57508403062820)},   {FRAC_CONST(0.05198933184147), FRAC_CONST(0.21269661188126)},
    {FRAC_CONST(-0.53499621152878), FRAC_CONST(0.97241556644440)},  {FRAC_CONST(-0.49429559707642), FRAC_CONST(0.98183864355087)},  {FRAC_CONST(-0.98935145139694), FRAC_CONST(-0.40249159932137)},
    {FRAC_CONST(-0.98081380128860), FRAC_CONST(-0.72856897115707)}, {FRAC_CONST(-0.27338150143623), FRAC_CONST(0.99950921535492)},  {FRAC_CONST(0.06310802698135), FRAC_CONST(-0.54539585113525)},
    {FRAC_CONST(-0.20461677014828), FRAC_CONST(-0.14209978282452)}, {FRAC_CONST(0.66223841905594), FRAC_CONST(0.72528582811356)},   {FRAC_CONST(-0.84764343500137), FRAC_CONST(0.02372316829860)},
    {FRAC_CONST(-0.89039862155914), FRAC_CONST(0.88866579532623)},  {FRAC_CONST(0.95903307199478), FRAC_CONST(0.76744925975800)},   {FRAC_CONST(0.73504126071930), FRAC_CONST(-0.03747203201056)},
    {FRAC_CONST(-0.31744435429573), FRAC_CONST(-0.36834111809731)}, {FRAC_CONST(-0.34110826253891), FRAC_CONST(0.40211221575737)},  {FRAC_CONST(0.47803884744644), FRAC_CONST(-0.39423218369484)},
    {FRAC_CONST(0.98299193382263), FRAC_CONST(0.01989791356027)},   {FRAC_CONST(-0.30963072180748), FRAC_CONST(-0.18076720833778)}, {FRAC_CONST(0.99992591142654), FRAC_CONST(-0.26281872391701)},
    {FRAC_CONST(-0.93149733543396), FRAC_CONST(-0.98313164710999)}, {FRAC_CONST(0.99923473596573), FRAC_CONST(-0.80142992734909)},  {FRAC_CONST(-0.26024168729782), FRAC_CONST(-0.75999760627747)},
    {FRAC_CONST(-0.35712513327599), FRAC_CONST(0.19298963248730)},  {FRAC_CONST(-0.99899083375931), FRAC_CONST(0.74645155668259)},  {FRAC_CONST(0.86557173728943), FRAC_CONST(0.55593866109848)},
    {FRAC_CONST(0.33408042788506), FRAC_CONST(0.86185956001282)},   {FRAC_CONST(0.99010735750198), FRAC_CONST(0.04602397605777)},   {FRAC_CONST(-0.66694271564484), FRAC_CONST(-0.91643613576889)},
    {FRAC_CONST(0.64016789197922), FRAC_CONST(0.15649530291557)},   {FRAC_CONST(0.99570536613464), FRAC_CONST(0.45844584703445)},   {FRAC_CONST(-0.63431465625763), FRAC_CONST(0.21079117059708)},
    {FRAC_CONST(-0.07706847041845), FRAC_CONST(-0.89581435918808)}, {FRAC_CONST(0.98590087890625), FRAC_CONST(0.88241720199585)},   {FRAC_CONST(0.80099332332611), FRAC_CONST(-0.36851897835732)},
    {FRAC_CONST(0.78368133306503), FRAC_CONST(0.45506998896599)},   {FRAC_CONST(0.08707806468010), FRAC_CONST(0.80938994884491)},   {FRAC_CONST(-0.86811882257462), FRAC_CONST(0.39347308874130)},
    {FRAC_CONST(-0.39466530084610), FRAC_CONST(-0.66809433698654)}, {FRAC_CONST(0.97875326871872), FRAC_CONST(-0.72467839717865)},  {FRAC_CONST(-0.95038563013077), FRAC_CONST(0.89563220739365)},
    {FRAC_CONST(0.17005239427090), FRAC_CONST(0.54683053493500)},   {FRAC_CONST(-0.76910793781281), FRAC_CONST(-0.96226614713669)}, {FRAC_CONST(0.99743282794952), FRAC_CONST(0.42697158455849)},
    {FRAC_CONST(0.95437383651733), FRAC_CONST(0.97002321481705)},   {FRAC_CONST(0.99578905105591), FRAC_CONST(-0.54106825590134)},  {FRAC_CONST(0.28058260679245), FRAC_CONST(-0.85361421108246)},
    {FRAC_CONST(0.85256522893906), FRAC_CONST(-0.64567607641220)},  {FRAC_CONST(-0.50608539581299), FRAC_CONST(-0.65846014022827)}, {FRAC_CONST(-0.97210735082626), FRAC_CONST(-0.23095212876797)},
    {FRAC_CONST(0.95424050092697), FRAC_CONST(-0.99240148067474)},  {FRAC_CONST(-0.96926569938660), FRAC_CONST(0.73775655031204)},  {FRAC_CONST(0.30872163176537), FRAC_CONST(0.41514959931374)},
    {FRAC_CONST(-0.24523839354515), FRAC_CONST(0.63206630945206)},  {FRAC_CONST(-0.33813264966011), FRAC_CONST(-0.38661777973175)}, {FRAC_CONST(-0.05826828256249), FRAC_CONST(-0.06940773874521)},
    {FRAC_CONST(-0.22898460924625), FRAC_CONST(0.97054851055145)},  {FRAC_CONST(-0.18509915471077), FRAC_CONST(0.47565764188766)},  {FRAC_CONST(-0.10488238185644), FRAC_CONST(-0.87769949436188)},
    {FRAC_CONST(-0.71886587142944), FRAC_CONST(0.78030979633331)},  {FRAC_CONST(0.99793875217438), FRAC_CONST(0.90041309595108)},   {FRAC_CONST(0.57563304901123), FRAC_CONST(-0.91034334897995)},
    {FRAC_CONST(0.28909647464752), FRAC_CONST(0.96307784318924)},   {FRAC_CONST(0.42188999056816), FRAC_CONST(0.48148649930954)},   {FRAC_CONST(0.93335050344467), FRAC_CONST(-0.43537023663521)},
    {FRAC_CONST(-0.97087377309799), FRAC_CONST(0.86636447906494)},  {FRAC_CONST(0.36722871661186), FRAC_CONST(0.65291655063629)},   {FRAC_CONST(-0.81093025207520), FRAC_CONST(0.08778370171785)},
    {FRAC_CONST(-0.26240602135658), FRAC_CONST(-0.92774093151093)}, {FRAC_CONST(0.83996498584747), FRAC_CONST(0.55839848518372)},   {FRAC_CONST(-0.99909615516663), FRAC_CONST(-0.96024608612061)},
    {FRAC_CONST(0.74649465084076), FRAC_CONST(0.12144893407822)},   {FRAC_CONST(-0.74774593114853), FRAC_CONST(-0.26898062229156)}, {FRAC_CONST(0.95781666040421), FRAC_CONST(-0.79047924280167)},
    {FRAC_CONST(0.95472306013107), FRAC_CONST(-0.08588775992393)},  {FRAC_CONST(0.48708331584930), FRAC_CONST(0.99999040365219)},   {FRAC_CONST(0.46332037448883), FRAC_CONST(0.10964126139879)},
    {FRAC_CONST(-0.76497006416321), FRAC_CONST(0.89210927486420)},  {FRAC_CONST(0.57397389411926), FRAC_CONST(0.35289704799652)},   {FRAC_CONST(0.75374317169189), FRAC_CONST(0.96705216169357)},
    {FRAC_CONST(-0.59174400568008), FRAC_CONST(-0.89405369758606)}, {FRAC_CONST(0.75087904930115), FRAC_CONST(-0.29612672328949)},  {FRAC_CONST(-0.98607856035233), FRAC_CONST(0.25034910440445)},
    {FRAC_CONST(-0.40761056542397), FRAC_CONST(-0.90045571327209)}, {FRAC_CONST(0.66929268836975), FRAC_CONST(0.98629492521286)},   {FRAC_CONST(-0.97463697195053), FRAC_CONST(-0.00190223299433)},
    {FRAC_CONST(0.90145510435104), FRAC_CONST(0.99781388044357)},   {FRAC_CONST(-0.87259286642075), FRAC_CONST(0.99233585596085)},  {FRAC_CONST(-0.91529458761215), FRAC_CONST(-0.15698707103729)},
    {FRAC_CONST(-0.03305738791823), FRAC_CONST(-0.37205263972282)}, {FRAC_CONST(0.07223051041365), FRAC_CONST(-0.88805001974106)},  {FRAC_CONST(0.99498009681702), FRAC_CONST(0.97094357013702)},
    {FRAC_CONST(-0.74904936552048), FRAC_CONST(0.99985486268997)},  {FRAC_CONST(0.04585228487849), FRAC_CONST(0.99812334775925)},   {FRAC_CONST(-0.89054954051971), FRAC_CONST(-0.31791913509369)},
    {FRAC_CONST(-0.83782142400742), FRAC_CONST(0.97637635469437)},  {FRAC_CONST(0.33454805612564), FRAC_CONST(-0.86231517791748)},  {FRAC_CONST(-0.99707579612732), FRAC_CONST(0.93237990140915)},
    {FRAC_CONST(-0.22827528417110), FRAC_CONST(0.18874759972095)},  {FRAC_CONST(0.67248046398163), FRAC_CONST(-0.03646211326122)},  {FRAC_CONST(-0.05146538093686), FRAC_CONST(-0.92599701881409)},
    {FRAC_CONST(0.99947297573090), FRAC_CONST(0.93625229597092)},   {FRAC_CONST(0.66951125860214), FRAC_CONST(0.98905825614929)},   {FRAC_CONST(-0.99602955579758), FRAC_CONST(-0.44654715061188)},
    {FRAC_CONST(0.82104903459549), FRAC_CONST(0.99540740251541)},   {FRAC_CONST(0.99186509847641), FRAC_CONST(0.72022998332977)},   {FRAC_CONST(-0.65284591913223), FRAC_CONST(0.52186721563339)},
    {FRAC_CONST(0.93885445594788), FRAC_CONST(-0.74895310401917)},  {FRAC_CONST(0.96735250949860), FRAC_CONST(0.90891814231873)},   {FRAC_CONST(-0.22225968539715), FRAC_CONST(0.57124030590057)},
    {FRAC_CONST(-0.44132784008980), FRAC_CONST(-0.92688840627670)}, {FRAC_CONST(-0.85694974660873), FRAC_CONST(0.88844531774521)},  {FRAC_CONST(0.91783040761948), FRAC_CONST(-0.46356892585754)},
    {FRAC_CONST(0.72556972503662), FRAC_CONST(-0.99899554252625)},  {FRAC_CONST(-0.99711579084396), FRAC_CONST(0.58211559057236)},  {FRAC_CONST(0.77638977766037), FRAC_CONST(0.94321835041046)},
    {FRAC_CONST(0.07717324048281), FRAC_CONST(0.58638399839401)},   {FRAC_CONST(-0.56049829721451), FRAC_CONST(0.82522302865982)},  {FRAC_CONST(0.98398894071579), FRAC_CONST(0.39467439055443)},
    {FRAC_CONST(0.47546947002411), FRAC_CONST(0.68613046407700)},   {FRAC_CONST(0.65675091743469), FRAC_CONST(0.18331636488438)},   {FRAC_CONST(0.03273375332355), FRAC_CONST(-0.74933111667633)},
    {FRAC_CONST(-0.38684144616127), FRAC_CONST(0.51337349414825)},  {FRAC_CONST(-0.97346270084381), FRAC_CONST(-0.96549361944199)}, {FRAC_CONST(-0.53282153606415), FRAC_CONST(-0.91423267126083)},
    {FRAC_CONST(0.99817311763763), FRAC_CONST(0.61133575439453)},   {FRAC_CONST(-0.50254499912262), FRAC_CONST(-0.88829338550568)}, {FRAC_CONST(0.01995873264968), FRAC_CONST(0.85223513841629)},
    {FRAC_CONST(0.99930381774902), FRAC_CONST(0.94578897953033)},   {FRAC_CONST(0.82907766103745), FRAC_CONST(-0.06323442608118)},  {FRAC_CONST(-0.58660709857941), FRAC_CONST(0.96840775012970)},
    {FRAC_CONST(-0.17573736608028), FRAC_CONST(-0.48166921734810)}, {FRAC_CONST(0.83434289693832), FRAC_CONST(-0.13023450970650)},  {FRAC_CONST(0.05946491286159), FRAC_CONST(0.20511047542095)},
    {FRAC_CONST(0.81505483388901), FRAC_CONST(-0.94685947895050)},  {FRAC_CONST(-0.44976380467415), FRAC_CONST(0.40894573926926)},  {FRAC_CONST(-0.89746475219727), FRAC_CONST(0.99846577644348)},
    {FRAC_CONST(0.39677256345749), FRAC_CONST(-0.74854665994644)},  {FRAC_CONST(-0.07588948309422), FRAC_CONST(0.74096214771271)},  {FRAC_CONST(0.76343196630478), FRAC_CONST(0.41746628284454)},
    {FRAC_CONST(-0.74490106105804), FRAC_CONST(0.94725912809372)},  {FRAC_CONST(0.64880120754242), FRAC_CONST(0.41336661577225)},   {FRAC_CONST(0.62319535017014), FRAC_CONST(-0.93098312616348)},
    {FRAC_CONST(0.42215818166733), FRAC_CONST(-0.07712787389755)},  {FRAC_CONST(0.02704554051161), FRAC_CONST(-0.05417517945170)},  {FRAC_CONST(0.80001771450043), FRAC_CONST(0.91542196273804)},
    {FRAC_CONST(-0.79351830482483), FRAC_CONST(-0.36208897829056)}, {FRAC_CONST(0.63872361183167), FRAC_CONST(0.08128252625465)},   {FRAC_CONST(0.52890521287918), FRAC_CONST(0.60048872232437)},
    {FRAC_CONST(0.74238550662994), FRAC_CONST(0.04491915181279)},   {FRAC_CONST(0.99096131324768), FRAC_CONST(-0.19451183080673)},  {FRAC_CONST(-0.80412328243256), FRAC_CONST(-0.88513815402985)},
    {FRAC_CONST(-0.64612615108490), FRAC_CONST(0.72198677062988)},  {FRAC_CONST(0.11657770723104), FRAC_CONST(-0.83662831783295)},  {FRAC_CONST(-0.95053184032440), FRAC_CONST(-0.96939903497696)},
    {FRAC_CONST(-0.62228870391846), FRAC_CONST(0.82767260074615)},  {FRAC_CONST(0.03004475869238), FRAC_CONST(-0.99738895893097)},  {FRAC_CONST(-0.97987216711044), FRAC_CONST(0.36526128649712)},
    {FRAC_CONST(-0.99986982345581), FRAC_CONST(-0.36021611094475)}, {FRAC_CONST(0.89110648632050), FRAC_CONST(-0.97894251346588)},  {FRAC_CONST(0.10407960414886), FRAC_CONST(0.77357792854309)},
    {FRAC_CONST(0.95964735746384), FRAC_CONST(-0.35435819625854)},  {FRAC_CONST(0.50843232870102), FRAC_CONST(0.96107691526413)},   {FRAC_CONST(0.17006334662437), FRAC_CONST(-0.76854026317596)},
    {FRAC_CONST(0.25872674584389), FRAC_CONST(0.99893301725388)},   {FRAC_CONST(-0.01115998718888), FRAC_CONST(0.98496019840240)},  {FRAC_CONST(-0.79598701000214), FRAC_CONST(0.97138410806656)},
    {FRAC_CONST(-0.99264711141586), FRAC_CONST(-0.99542820453644)}, {FRAC_CONST(-0.99829661846161), FRAC_CONST(0.01877138763666)},  {FRAC_CONST(-0.70801013708115), FRAC_CONST(0.33680686354637)},
    {FRAC_CONST(-0.70467054843903), FRAC_CONST(0.93272775411606)},  {FRAC_CONST(0.99846023321152), FRAC_CONST(-0.98725748062134)},  {FRAC_CONST(-0.63364970684052), FRAC_CONST(-0.16473594307899)},
    {FRAC_CONST(-0.16258217394352), FRAC_CONST(-0.95939123630524)}, {FRAC_CONST(-0.43645593523979), FRAC_CONST(-0.94805032014847)}, {FRAC_CONST(-0.99848473072052), FRAC_CONST(0.96245169639587)},
    {FRAC_CONST(-0.16796459257603), FRAC_CONST(-0.98987513780594)}, {FRAC_CONST(-0.87979227304459), FRAC_CONST(-0.71725726127625)}, {FRAC_CONST(0.44183099269867), FRAC_CONST(-0.93568974733353)},
    {FRAC_CONST(0.93310177326202), FRAC_CONST(-0.99913311004639)},  {FRAC_CONST(-0.93941932916641), FRAC_CONST(-0.56409376859665)}, {FRAC_CONST(-0.88590002059937), FRAC_CONST(0.47624599933624)},
    {FRAC_CONST(0.99971461296082), FRAC_CONST(-0.83889955282211)},  {FRAC_CONST(-0.75376385450363), FRAC_CONST(0.00814643409103)},  {FRAC_CONST(0.93887686729431), FRAC_CONST(-0.11284527927637)},
    {FRAC_CONST(0.85126435756683), FRAC_CONST(0.52349251508713)},   {FRAC_CONST(0.39701420068741), FRAC_CONST(0.81779634952545)},   {FRAC_CONST(-0.37024465203285), FRAC_CONST(-0.87071657180786)},
    {FRAC_CONST(-0.36024826765060), FRAC_CONST(0.34655734896660)},  {FRAC_CONST(-0.93388813734055), FRAC_CONST(-0.84476542472839)}, {FRAC_CONST(-0.65298801660538), FRAC_CONST(-0.18439576029778)},
    {FRAC_CONST(0.11960318684578), FRAC_CONST(0.99899345636368)},   {FRAC_CONST(0.94292563199997), FRAC_CONST(0.83163905143738)},   {FRAC_CONST(0.75081145763397), FRAC_CONST(-0.35533222556114)},
    {FRAC_CONST(0.56721979379654), FRAC_CONST(-0.24076835811138)},  {FRAC_CONST(0.46857765316963), FRAC_CONST(-0.30140233039856)},  {FRAC_CONST(0.97312313318253), FRAC_CONST(-0.99548190832138)},
    {FRAC_CONST(-0.38299977779388), FRAC_CONST(0.98516911268234)},  {FRAC_CONST(0.41025799512863), FRAC_CONST(0.02116736955941)},   {FRAC_CONST(0.09638062119484), FRAC_CONST(0.04411984235048)},
    {FRAC_CONST(-0.85283249616623), FRAC_CONST(0.91475564241409)},  {FRAC_CONST(0.88866806030273), FRAC_CONST(-0.99735265970230)},  {FRAC_CONST(-0.48202428221703), FRAC_CONST(-0.96805608272552)},
    {FRAC_CONST(0.27572581171989), FRAC_CONST(0.58634752035141)},   {FRAC_CONST(-0.65889132022858), FRAC_CONST(0.58835631608963)},  {FRAC_CONST(0.98838084936142), FRAC_CONST(0.99994349479675)},
    {FRAC_CONST(-0.20651349425316), FRAC_CONST(0.54593044519424)},  {FRAC_CONST(-0.62126415967941), FRAC_CONST(-0.59893679618835)}, {FRAC_CONST(0.20320105552673), FRAC_CONST(-0.86879181861877)},
    {FRAC_CONST(-0.97790551185608), FRAC_CONST(0.96290808916092)},  {FRAC_CONST(0.11112534999847), FRAC_CONST(0.21484763920307)},   {FRAC_CONST(-0.41368338465691), FRAC_CONST(0.28216838836670)},
    {FRAC_CONST(0.24133038520813), FRAC_CONST(0.51294362545013)},   {FRAC_CONST(-0.66393411159515), FRAC_CONST(-0.08249679952860)}, {FRAC_CONST(-0.53697830438614), FRAC_CONST(-0.97649902105331)},
    {FRAC_CONST(-0.97224736213684), FRAC_CONST(0.22081333398819)},  {FRAC_CONST(0.87392479181290), FRAC_CONST(-0.12796173989773)},  {FRAC_CONST(0.19050361216068), FRAC_CONST(0.01602615416050)},
    {FRAC_CONST(-0.46353441476822), FRAC_CONST(-0.95249038934708)}, {FRAC_CONST(-0.07064096629620), FRAC_CONST(-0.94479805231094)}, {FRAC_CONST(-0.92444086074829), FRAC_CONST(-0.10457590222359)},
    {FRAC_CONST(-0.83822596073151), FRAC_CONST(-0.01695043221116)}, {FRAC_CONST(0.75214684009552), FRAC_CONST(-0.99955683946609)},  {FRAC_CONST(-0.42102998495102), FRAC_CONST(0.99720942974091)},
    {FRAC_CONST(-0.72094786167145), FRAC_CONST(-0.35008960962296)}, {FRAC_CONST(0.78843313455582), FRAC_CONST(0.52851396799088)},   {FRAC_CONST(0.97394025325775), FRAC_CONST(-0.26695942878723)},
    {FRAC_CONST(0.99206465482712), FRAC_CONST(-0.57010120153427)},  {FRAC_CONST(0.76789611577988), FRAC_CONST(-0.76519358158112)},  {FRAC_CONST(-0.82002419233322), FRAC_CONST(-0.73530179262161)},
    {FRAC_CONST(0.81924992799759), FRAC_CONST(0.99698424339294)},   {FRAC_CONST(-0.26719850301743), FRAC_CONST(0.68903368711472)},  {FRAC_CONST(-0.43311259150505), FRAC_CONST(0.85321813821793)},
    {FRAC_CONST(0.99194979667664), FRAC_CONST(0.91876250505447)},   {FRAC_CONST(-0.80691999197006), FRAC_CONST(-0.32627540826797)}, {FRAC_CONST(0.43080005049706), FRAC_CONST(-0.21919095516205)},
    {FRAC_CONST(0.67709493637085), FRAC_CONST(-0.95478075742722)},  {FRAC_CONST(0.56151771545410), FRAC_CONST(-0.70693808794022)},  {FRAC_CONST(0.10831862688065), FRAC_CONST(-0.08628837019205)},
    {FRAC_CONST(0.91229414939880), FRAC_CONST(-0.65987348556519)},  {FRAC_CONST(-0.48972892761230), FRAC_CONST(0.56289243698120)},  {FRAC_CONST(-0.89033657312393), FRAC_CONST(-0.71656566858292)},
    {FRAC_CONST(0.65269446372986), FRAC_CONST(0.65916007757187)},   {FRAC_CONST(0.67439478635788), FRAC_CONST(-0.81684380769730)},  {FRAC_CONST(-0.47770830988884), FRAC_CONST(-0.16789555549622)},
    {FRAC_CONST(-0.99715977907181), FRAC_CONST(-0.93565785884857)}, {FRAC_CONST(-0.90889590978622), FRAC_CONST(0.62034398317337)},  {FRAC_CONST(-0.06618622690439), FRAC_CONST(-0.23812216520309)},
    {FRAC_CONST(0.99430269002914), FRAC_CONST(0.18812555074692)},   {FRAC_CONST(0.97686403989792), FRAC_CONST(-0.28664535284042)},  {FRAC_CONST(0.94813650846481), FRAC_CONST(-0.97506642341614)},
    {FRAC_CONST(-0.95434498786926), FRAC_CONST(-0.79607981443405)}, {FRAC_CONST(-0.49104782938957), FRAC_CONST(0.32895213365555)},  {FRAC_CONST(0.99881172180176), FRAC_CONST(0.88993984460831)},
    {FRAC_CONST(0.50449168682098), FRAC_CONST(-0.85995072126389)},  {FRAC_CONST(0.47162890434265), FRAC_CONST(-0.18680204451084)},  {FRAC_CONST(-0.62081581354141), FRAC_CONST(0.75000673532486)},
    {FRAC_CONST(-0.43867015838623), FRAC_CONST(0.99998068809509)},  {FRAC_CONST(0.98630565404892), FRAC_CONST(-0.53578901290894)},  {FRAC_CONST(-0.61510360240936), FRAC_CONST(-0.89515018463135)},
    {FRAC_CONST(-0.03841517493129), FRAC_CONST(-0.69888818264008)}, {FRAC_CONST(-0.30102157592773), FRAC_CONST(-0.07667808979750)}, {FRAC_CONST(0.41881284117699), FRAC_CONST(0.02188098989427)},
    {FRAC_CONST(-0.86135452985764), FRAC_CONST(0.98947483301163)},  {FRAC_CONST(0.67226862907410), FRAC_CONST(-0.13494388759136)},  {FRAC_CONST(-0.70737397670746), FRAC_CONST(-0.76547348499298)},
    {FRAC_CONST(0.94044947624207), FRAC_CONST(0.09026201069355)},   {FRAC_CONST(-0.82386350631714), FRAC_CONST(0.08924768865108)},  {FRAC_CONST(-0.32070666551590), FRAC_CONST(0.50143420696259)},
    {FRAC_CONST(0.57593160867691), FRAC_CONST(-0.98966425657272)},  {FRAC_CONST(-0.36326017975807), FRAC_CONST(0.07440242916346)},  {FRAC_CONST(0.99979043006897), FRAC_CONST(-0.14130286872387)},
    {FRAC_CONST(-0.92366021871567), FRAC_CONST(-0.97979295253754)}, {FRAC_CONST(-0.44607177376747), FRAC_CONST(-0.54233253002167)}, {FRAC_CONST(0.44226801395416), FRAC_CONST(0.71326756477356)},
    {FRAC_CONST(0.03671907261014), FRAC_CONST(0.63606387376785)},   {FRAC_CONST(0.52175426483154), FRAC_CONST(-0.85396826267242)},  {FRAC_CONST(-0.94701141119003), FRAC_CONST(-0.01826348155737)},
    {FRAC_CONST(-0.98759609460831), FRAC_CONST(0.82288712263107)},  {FRAC_CONST(0.87434792518616), FRAC_CONST(0.89399492740631)},   {FRAC_CONST(-0.93412041664124), FRAC_CONST(0.41374051570892)},
    {FRAC_CONST(0.96063941717148), FRAC_CONST(0.93116706609726)},   {FRAC_CONST(0.97534251213074), FRAC_CONST(0.86150932312012)},   {FRAC_CONST(0.99642467498779), FRAC_CONST(0.70190042257309)},
    {FRAC_CONST(-0.94705086946487), FRAC_CONST(-0.29580041766167)}, {FRAC_CONST(0.91599804162979), FRAC_CONST(-0.98147833347321)}};

 const int32_t qmf_c[640] = {
    FRAC_CONST(0.000000000000000), FRAC_CONST(-0.00055252865047), FRAC_CONST(-0.00056176925738), FRAC_CONST(-0.00049475180896), FRAC_CONST(-0.00048752279712), FRAC_CONST(-0.00048937912498),
    FRAC_CONST(-0.00050407143497), FRAC_CONST(-0.00052265642972), FRAC_CONST(-0.00054665656337), FRAC_CONST(-0.00056778025613), FRAC_CONST(-0.00058709304852), FRAC_CONST(-0.00061327473938),
    FRAC_CONST(-0.00063124935319), FRAC_CONST(-0.00065403333621), FRAC_CONST(-0.00067776907764), FRAC_CONST(-0.00069416146273), FRAC_CONST(-0.00071577364744), FRAC_CONST(-0.00072550431222),
    FRAC_CONST(-0.00074409418541), FRAC_CONST(-0.00074905980532), FRAC_CONST(-0.0007681371927),  FRAC_CONST(-0.00077248485949), FRAC_CONST(-0.00078343322877), FRAC_CONST(-0.00077798694927),
    FRAC_CONST(-0.000780366471),   FRAC_CONST(-0.00078014496257), FRAC_CONST(-0.0007757977331),  FRAC_CONST(-0.00076307935757), FRAC_CONST(-0.00075300014201), FRAC_CONST(-0.00073193571525),
    FRAC_CONST(-0.00072153919876), FRAC_CONST(-0.00069179375372), FRAC_CONST(-0.00066504150893), FRAC_CONST(-0.00063415949025), FRAC_CONST(-0.0005946118933),  FRAC_CONST(-0.00055645763906),
    FRAC_CONST(-0.00051455722108), FRAC_CONST(-0.00046063254803), FRAC_CONST(-0.00040951214522), FRAC_CONST(-0.00035011758756), FRAC_CONST(-0.00028969811748), FRAC_CONST(-0.0002098337344),
    FRAC_CONST(-0.00014463809349), FRAC_CONST(-6.173344072E-005), FRAC_CONST(1.349497418E-005),  FRAC_CONST(0.00010943831274),  FRAC_CONST(0.00020430170688),  FRAC_CONST(0.00029495311041),
    FRAC_CONST(0.0004026540216),   FRAC_CONST(0.00051073884952),  FRAC_CONST(0.00062393761391),  FRAC_CONST(0.00074580258865),  FRAC_CONST(0.00086084433262),  FRAC_CONST(0.00098859883015),
    FRAC_CONST(0.00112501551307),  FRAC_CONST(0.00125778846475),  FRAC_CONST(0.00139024948272),  FRAC_CONST(0.00154432198471),  FRAC_CONST(0.00168680832531),  FRAC_CONST(0.00183482654224),
    FRAC_CONST(0.00198411407369),  FRAC_CONST(0.00214615835557),  FRAC_CONST(0.00230172547746),  FRAC_CONST(0.00246256169126),  FRAC_CONST(0.00262017586902),  FRAC_CONST(0.00278704643465),
    FRAC_CONST(0.00294694477165),  FRAC_CONST(0.00311254206525),  FRAC_CONST(0.00327396134847),  FRAC_CONST(0.00344188741828),  FRAC_CONST(0.00360082681231),  FRAC_CONST(0.00376039229104),
    FRAC_CONST(0.00392074323703),  FRAC_CONST(0.00408197531935),  FRAC_CONST(0.0042264269227),   FRAC_CONST(0.00437307196781),  FRAC_CONST(0.00452098527825),  FRAC_CONST(0.00466064606118),
    FRAC_CONST(0.00479325608498),  FRAC_CONST(0.00491376035745),  FRAC_CONST(0.00503930226013),  FRAC_CONST(0.00514073539032),  FRAC_CONST(0.00524611661324),  FRAC_CONST(0.00534716811982),
    FRAC_CONST(0.00541967759307),  FRAC_CONST(0.00548760401507),  FRAC_CONST(0.00554757145088),  FRAC_CONST(0.00559380230045),  FRAC_CONST(0.00562206432097),  FRAC_CONST(0.00564551969164),
    FRAC_CONST(0.00563891995151),  FRAC_CONST(0.00562661141932),  FRAC_CONST(0.0055917128663),   FRAC_CONST(0.005540436394),    FRAC_CONST(0.0054753783077),   FRAC_CONST(0.0053838975897),
    FRAC_CONST(0.00527157587272),  FRAC_CONST(0.00513822754514),  FRAC_CONST(0.00498396877629),  FRAC_CONST(0.004810946906),    FRAC_CONST(0.00460395301471),  FRAC_CONST(0.00438018617447),
    FRAC_CONST(0.0041251642327),   FRAC_CONST(0.00384564081246),  FRAC_CONST(0.00354012465507),  FRAC_CONST(0.00320918858098),  FRAC_CONST(0.00284467578623),  FRAC_CONST(0.00245085400321),
    FRAC_CONST(0.0020274176185),   FRAC_CONST(0.00157846825768),  FRAC_CONST(0.00109023290512),  FRAC_CONST(0.0005832264248),   FRAC_CONST(2.760451905E-005),  FRAC_CONST(-0.00054642808664),
    FRAC_CONST(-0.00115681355227), FRAC_CONST(-0.00180394725893), FRAC_CONST(-0.00248267236449), FRAC_CONST(-0.003193377839),   FRAC_CONST(-0.00394011240522), FRAC_CONST(-0.004722259624),
    FRAC_CONST(-0.00553372111088), FRAC_CONST(-0.00637922932685), FRAC_CONST(-0.00726158168517), FRAC_CONST(-0.00817982333726), FRAC_CONST(-0.00913253296085), FRAC_CONST(-0.01011502154986),
    FRAC_CONST(-0.01113155480321), FRAC_CONST(-0.01218499959508), FRAC_CONST(0.01327182200351),  FRAC_CONST(0.01439046660792),  FRAC_CONST(0.01554055533423),  FRAC_CONST(0.01673247129989),
    FRAC_CONST(0.01794333813443),  FRAC_CONST(0.01918724313698),  FRAC_CONST(0.02045317933555),  FRAC_CONST(0.02174675502535),  FRAC_CONST(0.02306801692862),  FRAC_CONST(0.02441609920285),
    FRAC_CONST(0.02578758475467),  FRAC_CONST(0.02718594296329),  FRAC_CONST(0.02860721736385),  FRAC_CONST(0.03005026574279),  FRAC_CONST(0.03150176087389),  FRAC_CONST(0.03297540810337),
    FRAC_CONST(0.03446209487686),  FRAC_CONST(0.03596975605542),  FRAC_CONST(0.03748128504252),  FRAC_CONST(0.03900536794745),  FRAC_CONST(0.04053491705584),  FRAC_CONST(0.04206490946367),
    FRAC_CONST(0.04360975421304),  FRAC_CONST(0.04514884056413),  FRAC_CONST(0.04668430272642),  FRAC_CONST(0.04821657200672),  FRAC_CONST(0.04973857556014),  FRAC_CONST(0.05125561555216),
    FRAC_CONST(0.05276307465207),  FRAC_CONST(0.05424527683589),  FRAC_CONST(0.05571736482138),  FRAC_CONST(0.05716164501299),  FRAC_CONST(0.0585915683626),   FRAC_CONST(0.05998374801761),
    FRAC_CONST(0.06134551717207),  FRAC_CONST(0.06268578081172),  FRAC_CONST(0.06397158980681),  FRAC_CONST(0.0652247106438),   FRAC_CONST(0.06643675122104),  FRAC_CONST(0.06760759851228),
    FRAC_CONST(0.06870438283512),  FRAC_CONST(0.06976302447127),  FRAC_CONST(0.07076287107266),  FRAC_CONST(0.07170026731102),  FRAC_CONST(0.07256825833083),  FRAC_CONST(0.07336202550803),
    FRAC_CONST(0.07410036424342),  FRAC_CONST(0.07474525581194),  FRAC_CONST(0.07531373362019),  FRAC_CONST(0.07580083586584),  FRAC_CONST(0.07619924793396),  FRAC_CONST(0.07649921704119),
    FRAC_CONST(0.07670934904245),  FRAC_CONST(0.07681739756964),  FRAC_CONST(0.07682300113923),  FRAC_CONST(0.07672049241746),  FRAC_CONST(0.07650507183194),  FRAC_CONST(0.07617483218536),
    FRAC_CONST(0.07573057565061),  FRAC_CONST(0.0751576255287),   FRAC_CONST(0.07446643947564),  FRAC_CONST(0.0736406005762),   FRAC_CONST(0.07267746427299),  FRAC_CONST(0.07158263647903),
    FRAC_CONST(0.07035330735093),  FRAC_CONST(0.06896640131951),  FRAC_CONST(0.06745250215166),  FRAC_CONST(0.06576906686508),  FRAC_CONST(0.06394448059633),  FRAC_CONST(0.06196027790387),
    FRAC_CONST(0.0598166570809),   FRAC_CONST(0.05751526919867),  FRAC_CONST(0.05504600343009),  FRAC_CONST(0.05240938217366),  FRAC_CONST(0.04959786763445),  FRAC_CONST(0.04663033051701),
    FRAC_CONST(0.04347687821958),  FRAC_CONST(0.04014582784127),  FRAC_CONST(0.03664181168133),  FRAC_CONST(0.03295839306691),  FRAC_CONST(0.02908240060125),  FRAC_CONST(0.02503075618909),
    FRAC_CONST(0.02079970728622),  FRAC_CONST(0.01637012582228),  FRAC_CONST(0.01176238327857),  FRAC_CONST(0.00696368621617),  FRAC_CONST(0.00197656014503),  FRAC_CONST(-0.00320868968304),
    FRAC_CONST(-0.00857117491366), FRAC_CONST(-0.01412888273558), FRAC_CONST(-0.01988341292573), FRAC_CONST(-0.02582272888064), FRAC_CONST(-0.03195312745332), FRAC_CONST(-0.03827765720822),
    FRAC_CONST(-0.04478068215856), FRAC_CONST(-0.05148041767934), FRAC_CONST(-0.05837053268336), FRAC_CONST(-0.06544098531359), FRAC_CONST(-0.07269433008129), FRAC_CONST(-0.08013729344279),
    FRAC_CONST(-0.08775475365593), FRAC_CONST(-0.09555333528914), FRAC_CONST(-0.10353295311463), FRAC_CONST(-0.1116826931773),  FRAC_CONST(-0.120007798468),   FRAC_CONST(-0.12850028503878),
    FRAC_CONST(-0.13715517611934), FRAC_CONST(-0.1459766491187),  FRAC_CONST(-0.15496070710605), FRAC_CONST(-0.16409588556669), FRAC_CONST(-0.17338081721706), FRAC_CONST(-0.18281725485142),
    FRAC_CONST(-0.19239667457267), FRAC_CONST(-0.20212501768103), FRAC_CONST(-0.21197358538056), FRAC_CONST(-0.22196526964149), FRAC_CONST(-0.23206908706791), FRAC_CONST(-0.24230168845974),
    FRAC_CONST(-0.25264803095722), FRAC_CONST(-0.26310532994603), FRAC_CONST(-0.27366340405625), FRAC_CONST(-0.28432141891085), FRAC_CONST(-0.29507167170646), FRAC_CONST(-0.30590985751916),
    FRAC_CONST(-0.31682789136456), FRAC_CONST(-0.32781137272105), FRAC_CONST(-0.33887226938665), FRAC_CONST(-0.3499914122931),  FRAC_CONST(0.36115899031355),  FRAC_CONST(0.37237955463061),
    FRAC_CONST(0.38363500139043),  FRAC_CONST(0.39492117615675),  FRAC_CONST(0.40623176767625),  FRAC_CONST(0.41756968968409),  FRAC_CONST(0.42891199207373),  FRAC_CONST(0.44025537543665),
    FRAC_CONST(0.45159965356824),  FRAC_CONST(0.46293080852757),  FRAC_CONST(0.47424532146115),  FRAC_CONST(0.48552530911099),  FRAC_CONST(0.49677082545707),  FRAC_CONST(0.50798175000434),
    FRAC_CONST(0.51912349702391),  FRAC_CONST(0.53022408956855),  FRAC_CONST(0.54125534487322),  FRAC_CONST(0.55220512585061),  FRAC_CONST(0.5630789140137),   FRAC_CONST(0.57385241316923),
    FRAC_CONST(0.58454032354679),  FRAC_CONST(0.59511230862496),  FRAC_CONST(0.6055783538918),   FRAC_CONST(0.61591099320291),  FRAC_CONST(0.62612426956055),  FRAC_CONST(0.63619801077286),
    FRAC_CONST(0.64612696959461),  FRAC_CONST(0.65590163024671),  FRAC_CONST(0.66551398801627),  FRAC_CONST(0.67496631901712),  FRAC_CONST(0.68423532934598),  FRAC_CONST(0.69332823767032),
    FRAC_CONST(0.70223887193539),  FRAC_CONST(0.71094104263095),  FRAC_CONST(0.71944626349561),  FRAC_CONST(0.72774489002994),  FRAC_CONST(0.73582117582769),  FRAC_CONST(0.74368278636488),
    FRAC_CONST(0.75131374561237),  FRAC_CONST(0.75870807608242),  FRAC_CONST(0.76586748650939),  FRAC_CONST(0.77277808813327),  FRAC_CONST(0.77942875190216),  FRAC_CONST(0.7858353120392),
    FRAC_CONST(0.79197358416424),  FRAC_CONST(0.797846641377),    FRAC_CONST(0.80344857518505),  FRAC_CONST(0.80876950044491),  FRAC_CONST(0.81381912706217),  FRAC_CONST(0.81857760046468),
    FRAC_CONST(0.82304198905409),  FRAC_CONST(0.8272275347336),   FRAC_CONST(0.8311038457152),   FRAC_CONST(0.83469373618402),  FRAC_CONST(0.83797173378865),  FRAC_CONST(0.84095413924722),
    FRAC_CONST(0.84362382812005),  FRAC_CONST(0.84598184698206),  FRAC_CONST(0.84803157770763),  FRAC_CONST(0.84978051984268),  FRAC_CONST(0.85119715249343),  FRAC_CONST(0.85230470352147),
    FRAC_CONST(0.85310209497017),  FRAC_CONST(0.85357205739107),  FRAC_CONST(0.85373856005937),  FRAC_CONST(0.85357205739107),  FRAC_CONST(0.85310209497017),  FRAC_CONST(0.85230470352147),
    FRAC_CONST(0.85119715249343),  FRAC_CONST(0.84978051984268),  FRAC_CONST(0.84803157770763),  FRAC_CONST(0.84598184698206),  FRAC_CONST(0.84362382812005),  FRAC_CONST(0.84095413924722),
    FRAC_CONST(0.83797173378865),  FRAC_CONST(0.83469373618402),  FRAC_CONST(0.8311038457152),   FRAC_CONST(0.8272275347336),   FRAC_CONST(0.82304198905409),  FRAC_CONST(0.81857760046468),
    FRAC_CONST(0.81381912706217),  FRAC_CONST(0.80876950044491),  FRAC_CONST(0.80344857518505),  FRAC_CONST(0.797846641377),    FRAC_CONST(0.79197358416424),  FRAC_CONST(0.7858353120392),
    FRAC_CONST(0.77942875190216),  FRAC_CONST(0.77277808813327),  FRAC_CONST(0.76586748650939),  FRAC_CONST(0.75870807608242),  FRAC_CONST(0.75131374561237),  FRAC_CONST(0.74368278636488),
    FRAC_CONST(0.73582117582769),  FRAC_CONST(0.72774489002994),  FRAC_CONST(0.71944626349561),  FRAC_CONST(0.71094104263095),  FRAC_CONST(0.70223887193539),  FRAC_CONST(0.69332823767032),
    FRAC_CONST(0.68423532934598),  FRAC_CONST(0.67496631901712),  FRAC_CONST(0.66551398801627),  FRAC_CONST(0.65590163024671),  FRAC_CONST(0.64612696959461),  FRAC_CONST(0.63619801077286),
    FRAC_CONST(0.62612426956055),  FRAC_CONST(0.61591099320291),  FRAC_CONST(0.6055783538918),   FRAC_CONST(0.59511230862496),  FRAC_CONST(0.58454032354679),  FRAC_CONST(0.57385241316923),
    FRAC_CONST(0.5630789140137),   FRAC_CONST(0.55220512585061),  FRAC_CONST(0.54125534487322),  FRAC_CONST(0.53022408956855),  FRAC_CONST(0.51912349702391),  FRAC_CONST(0.50798175000434),
    FRAC_CONST(0.49677082545707),  FRAC_CONST(0.48552530911099),  FRAC_CONST(0.47424532146115),  FRAC_CONST(0.46293080852757),  FRAC_CONST(0.45159965356824),  FRAC_CONST(0.44025537543665),
    FRAC_CONST(0.42891199207373),  FRAC_CONST(0.41756968968409),  FRAC_CONST(0.40623176767625),  FRAC_CONST(0.39492117615675),  FRAC_CONST(0.38363500139043),  FRAC_CONST(0.37237955463061),
    FRAC_CONST(-0.36115899031355), FRAC_CONST(-0.3499914122931),  FRAC_CONST(-0.33887226938665), FRAC_CONST(-0.32781137272105), FRAC_CONST(-0.31682789136456), FRAC_CONST(-0.30590985751916),
    FRAC_CONST(-0.29507167170646), FRAC_CONST(-0.28432141891085), FRAC_CONST(-0.27366340405625), FRAC_CONST(-0.26310532994603), FRAC_CONST(-0.25264803095722), FRAC_CONST(-0.24230168845974),
    FRAC_CONST(-0.23206908706791), FRAC_CONST(-0.22196526964149), FRAC_CONST(-0.21197358538056), FRAC_CONST(-0.20212501768103), FRAC_CONST(-0.19239667457267), FRAC_CONST(-0.18281725485142),
    FRAC_CONST(-0.17338081721706), FRAC_CONST(-0.16409588556669), FRAC_CONST(-0.15496070710605), FRAC_CONST(-0.1459766491187),  FRAC_CONST(-0.13715517611934), FRAC_CONST(-0.12850028503878),
    FRAC_CONST(-0.120007798468),   FRAC_CONST(-0.1116826931773),  FRAC_CONST(-0.10353295311463), FRAC_CONST(-0.09555333528914), FRAC_CONST(-0.08775475365593), FRAC_CONST(-0.08013729344279),
    FRAC_CONST(-0.07269433008129), FRAC_CONST(-0.06544098531359), FRAC_CONST(-0.05837053268336), FRAC_CONST(-0.05148041767934), FRAC_CONST(-0.04478068215856), FRAC_CONST(-0.03827765720822),
    FRAC_CONST(-0.03195312745332), FRAC_CONST(-0.02582272888064), FRAC_CONST(-0.01988341292573), FRAC_CONST(-0.01412888273558), FRAC_CONST(-0.00857117491366), FRAC_CONST(-0.00320868968304),
    FRAC_CONST(0.00197656014503),  FRAC_CONST(0.00696368621617),  FRAC_CONST(0.01176238327857),  FRAC_CONST(0.01637012582228),  FRAC_CONST(0.02079970728622),  FRAC_CONST(0.02503075618909),
    FRAC_CONST(0.02908240060125),  FRAC_CONST(0.03295839306691),  FRAC_CONST(0.03664181168133),  FRAC_CONST(0.04014582784127),  FRAC_CONST(0.04347687821958),  FRAC_CONST(0.04663033051701),
    FRAC_CONST(0.04959786763445),  FRAC_CONST(0.05240938217366),  FRAC_CONST(0.05504600343009),  FRAC_CONST(0.05751526919867),  FRAC_CONST(0.0598166570809),   FRAC_CONST(0.06196027790387),
    FRAC_CONST(0.06394448059633),  FRAC_CONST(0.06576906686508),  FRAC_CONST(0.06745250215166),  FRAC_CONST(0.06896640131951),  FRAC_CONST(0.07035330735093),  FRAC_CONST(0.07158263647903),
    FRAC_CONST(0.07267746427299),  FRAC_CONST(0.0736406005762),   FRAC_CONST(0.07446643947564),  FRAC_CONST(0.0751576255287),   FRAC_CONST(0.07573057565061),  FRAC_CONST(0.07617483218536),
    FRAC_CONST(0.07650507183194),  FRAC_CONST(0.07672049241746),  FRAC_CONST(0.07682300113923),  FRAC_CONST(0.07681739756964),  FRAC_CONST(0.07670934904245),  FRAC_CONST(0.07649921704119),
    FRAC_CONST(0.07619924793396),  FRAC_CONST(0.07580083586584),  FRAC_CONST(0.07531373362019),  FRAC_CONST(0.07474525581194),  FRAC_CONST(0.07410036424342),  FRAC_CONST(0.07336202550803),
    FRAC_CONST(0.07256825833083),  FRAC_CONST(0.07170026731102),  FRAC_CONST(0.07076287107266),  FRAC_CONST(0.06976302447127),  FRAC_CONST(0.06870438283512),  FRAC_CONST(0.06760759851228),
    FRAC_CONST(0.06643675122104),  FRAC_CONST(0.0652247106438),   FRAC_CONST(0.06397158980681),  FRAC_CONST(0.06268578081172),  FRAC_CONST(0.06134551717207),  FRAC_CONST(0.05998374801761),
    FRAC_CONST(0.0585915683626),   FRAC_CONST(0.05716164501299),  FRAC_CONST(0.05571736482138),  FRAC_CONST(0.05424527683589),  FRAC_CONST(0.05276307465207),  FRAC_CONST(0.05125561555216),
    FRAC_CONST(0.04973857556014),  FRAC_CONST(0.04821657200672),  FRAC_CONST(0.04668430272642),  FRAC_CONST(0.04514884056413),  FRAC_CONST(0.04360975421304),  FRAC_CONST(0.04206490946367),
    FRAC_CONST(0.04053491705584),  FRAC_CONST(0.03900536794745),  FRAC_CONST(0.03748128504252),  FRAC_CONST(0.03596975605542),  FRAC_CONST(0.03446209487686),  FRAC_CONST(0.03297540810337),
    FRAC_CONST(0.03150176087389),  FRAC_CONST(0.03005026574279),  FRAC_CONST(0.02860721736385),  FRAC_CONST(0.02718594296329),  FRAC_CONST(0.02578758475467),  FRAC_CONST(0.02441609920285),
    FRAC_CONST(0.02306801692862),  FRAC_CONST(0.02174675502535),  FRAC_CONST(0.02045317933555),  FRAC_CONST(0.01918724313698),  FRAC_CONST(0.01794333813443),  FRAC_CONST(0.01673247129989),
    FRAC_CONST(0.01554055533423),  FRAC_CONST(0.01439046660792),  FRAC_CONST(-0.01327182200351), FRAC_CONST(-0.01218499959508), FRAC_CONST(-0.01113155480321), FRAC_CONST(-0.01011502154986),
    FRAC_CONST(-0.00913253296085), FRAC_CONST(-0.00817982333726), FRAC_CONST(-0.00726158168517), FRAC_CONST(-0.00637922932685), FRAC_CONST(-0.00553372111088), FRAC_CONST(-0.004722259624),
    FRAC_CONST(-0.00394011240522), FRAC_CONST(-0.003193377839),   FRAC_CONST(-0.00248267236449), FRAC_CONST(-0.00180394725893), FRAC_CONST(-0.00115681355227), FRAC_CONST(-0.00054642808664),
    FRAC_CONST(2.760451905E-005),  FRAC_CONST(0.0005832264248),   FRAC_CONST(0.00109023290512),  FRAC_CONST(0.00157846825768),  FRAC_CONST(0.0020274176185),   FRAC_CONST(0.00245085400321),
    FRAC_CONST(0.00284467578623),  FRAC_CONST(0.00320918858098),  FRAC_CONST(0.00354012465507),  FRAC_CONST(0.00384564081246),  FRAC_CONST(0.0041251642327),   FRAC_CONST(0.00438018617447),
    FRAC_CONST(0.00460395301471),  FRAC_CONST(0.004810946906),    FRAC_CONST(0.00498396877629),  FRAC_CONST(0.00513822754514),  FRAC_CONST(0.00527157587272),  FRAC_CONST(0.0053838975897),
    FRAC_CONST(0.0054753783077),   FRAC_CONST(0.005540436394),    FRAC_CONST(0.0055917128663),   FRAC_CONST(0.00562661141932),  FRAC_CONST(0.00563891995151),  FRAC_CONST(0.00564551969164),
    FRAC_CONST(0.00562206432097),  FRAC_CONST(0.00559380230045),  FRAC_CONST(0.00554757145088),  FRAC_CONST(0.00548760401507),  FRAC_CONST(0.00541967759307),  FRAC_CONST(0.00534716811982),
    FRAC_CONST(0.00524611661324),  FRAC_CONST(0.00514073539032),  FRAC_CONST(0.00503930226013),  FRAC_CONST(0.00491376035745),  FRAC_CONST(0.00479325608498),  FRAC_CONST(0.00466064606118),
    FRAC_CONST(0.00452098527825),  FRAC_CONST(0.00437307196781),  FRAC_CONST(0.0042264269227),   FRAC_CONST(0.00408197531935),  FRAC_CONST(0.00392074323703),  FRAC_CONST(0.00376039229104),
    FRAC_CONST(0.00360082681231),  FRAC_CONST(0.00344188741828),  FRAC_CONST(0.00327396134847),  FRAC_CONST(0.00311254206525),  FRAC_CONST(0.00294694477165),  FRAC_CONST(0.00278704643465),
    FRAC_CONST(0.00262017586902),  FRAC_CONST(0.00246256169126),  FRAC_CONST(0.00230172547746),  FRAC_CONST(0.00214615835557),  FRAC_CONST(0.00198411407369),  FRAC_CONST(0.00183482654224),
    FRAC_CONST(0.00168680832531),  FRAC_CONST(0.00154432198471),  FRAC_CONST(0.00139024948272),  FRAC_CONST(0.00125778846475),  FRAC_CONST(0.00112501551307),  FRAC_CONST(0.00098859883015),
    FRAC_CONST(0.00086084433262),  FRAC_CONST(0.00074580258865),  FRAC_CONST(0.00062393761391),  FRAC_CONST(0.00051073884952),  FRAC_CONST(0.0004026540216),   FRAC_CONST(0.00029495311041),
    FRAC_CONST(0.00020430170688),  FRAC_CONST(0.00010943831274),  FRAC_CONST(1.349497418E-005),  FRAC_CONST(-6.173344072E-005), FRAC_CONST(-0.00014463809349), FRAC_CONST(-0.0002098337344),
    FRAC_CONST(-0.00028969811748), FRAC_CONST(-0.00035011758756), FRAC_CONST(-0.00040951214522), FRAC_CONST(-0.00046063254803), FRAC_CONST(-0.00051455722108), FRAC_CONST(-0.00055645763906),
    FRAC_CONST(-0.0005946118933),  FRAC_CONST(-0.00063415949025), FRAC_CONST(-0.00066504150893), FRAC_CONST(-0.00069179375372), FRAC_CONST(-0.00072153919876), FRAC_CONST(-0.00073193571525),
    FRAC_CONST(-0.00075300014201), FRAC_CONST(-0.00076307935757), FRAC_CONST(-0.0007757977331),  FRAC_CONST(-0.00078014496257), FRAC_CONST(-0.000780366471),   FRAC_CONST(-0.00077798694927),
    FRAC_CONST(-0.00078343322877), FRAC_CONST(-0.00077248485949), FRAC_CONST(-0.0007681371927),  FRAC_CONST(-0.00074905980532), FRAC_CONST(-0.00074409418541), FRAC_CONST(-0.00072550431222),
    FRAC_CONST(-0.00071577364744), FRAC_CONST(-0.00069416146273), FRAC_CONST(-0.00067776907764), FRAC_CONST(-0.00065403333621), FRAC_CONST(-0.00063124935319), FRAC_CONST(-0.00061327473938),
    FRAC_CONST(-0.00058709304852), FRAC_CONST(-0.00056778025613), FRAC_CONST(-0.00054665656337), FRAC_CONST(-0.00052265642972), FRAC_CONST(-0.00050407143497), FRAC_CONST(-0.00048937912498),
    FRAC_CONST(-0.00048752279712), FRAC_CONST(-0.00049475180896), FRAC_CONST(-0.00056176925738), FRAC_CONST(-0.00055252865047),
};

 const uint8_t  num_swb_512_window[] = {0, 0, 0, 36, 36, 37, 31, 31, 0, 0, 0, 0};
 const uint8_t  num_swb_480_window[] = {0, 0, 0, 35, 35, 37, 30, 30, 0, 0, 0, 0};
 const uint8_t  num_swb_960_window[] = {40, 40, 45, 49, 49, 49, 46, 46, 42, 42, 42, 40};
 const uint8_t  num_swb_1024_window[] = {41, 41, 47, 49, 49, 51, 47, 47, 43, 43, 43, 40};
 const uint8_t  num_swb_128_window[] = {12, 12, 12, 14, 14, 14, 15, 15, 15, 15, 15, 15};
 const uint16_t swb_offset_1024_96[] = {0,   4,   8,   12,  16,  20,  24,  28,  32,  36,  40,  44,  48,  52,  56,  64,  72,  80,  88,  96,  108,
                                              120, 132, 144, 156, 172, 188, 212, 240, 276, 320, 384, 448, 512, 576, 640, 704, 768, 832, 896, 960, 1024};
 const uint16_t swb_offset_128_96[] = {0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 92, 128};
 const uint16_t swb_offset_1024_64[] = {0,   4,   8,   12,  16,  20,  24,  28,  32,  36,  40,  44,  48,  52,  56,  64,  72,  80,  88,  100, 112, 124, 140, 156,
                                              172, 192, 216, 240, 268, 304, 344, 384, 424, 464, 504, 544, 584, 624, 664, 704, 744, 784, 824, 864, 904, 944, 984, 1024};
 const uint16_t swb_offset_128_64[] = {0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 92, 128};
 const uint16_t swb_offset_1024_48[] = {0,   4,   8,   12,  16,  20,  24,  28,  32,  36,  40,  48,  56,  64,  72,  80,  88,  96,  108, 120, 132, 144, 160, 176, 196,
                                              216, 240, 264, 292, 320, 352, 384, 416, 448, 480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800, 832, 864, 896, 928, 1024};
 const uint16_t swb_offset_512_48[] = {0,  4,   8,   12,  16,  20,  24,  28,  32,  36,  40,  44,  48,  52,  56,  60,  68,  76, 84,
                                             92, 100, 112, 124, 136, 148, 164, 184, 208, 236, 268, 300, 332, 364, 396, 428, 460, 512};
 const uint16_t swb_offset_480_48[] = {0,  4,  8,   12,  16,  20,  24,  28,  32,  36,  40,  44,  48,  52,  56,  64,  72,  80,
                                             88, 96, 108, 120, 132, 144, 156, 172, 188, 212, 240, 272, 304, 336, 368, 400, 432, 480};
 const uint16_t swb_offset_128_48[] = {0, 4, 8, 12, 16, 20, 28, 36, 44, 56, 68, 80, 96, 112, 128};
 const uint16_t swb_offset_1024_32[] = {0,   4,   8,   12,  16,  20,  24,  28,  32,  36,  40,  48,  56,  64,  72,  80,  88,  96,  108, 120, 132, 144, 160, 176, 196, 216,
                                              240, 264, 292, 320, 352, 384, 416, 448, 480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800, 832, 864, 896, 928, 960, 992, 1024};
 const uint16_t swb_offset_512_32[] = {0,  4,   8,   12,  16,  20,  24,  28,  32,  36,  40,  44,  48,  52,  56,  64,  72,  80,  88,
                                             96, 108, 120, 132, 144, 160, 176, 192, 212, 236, 260, 288, 320, 352, 384, 416, 448, 480, 512};
 const uint16_t swb_offset_480_32[] = {0,  4,  8,   12,  16,  20,  24,  28,  32,  36,  40,  44,  48,  52,  56,  60,  64,  72,  80,
                                             88, 96, 104, 112, 124, 136, 148, 164, 180, 200, 224, 256, 288, 320, 352, 384, 416, 448, 480};
 const uint16_t swb_offset_1024_24[] = {0,   4,   8,   12,  16,  20,  24,  28,  32,  36,  40,  44,  52,  60,  68,  76,  84,  92,  100, 108, 116, 124, 136, 148,
                                              160, 172, 188, 204, 220, 240, 260, 284, 308, 336, 364, 396, 432, 468, 508, 552, 600, 652, 704, 768, 832, 896, 960, 1024};
 const uint16_t swb_offset_512_24[] = {0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 52, 60, 68, 80, 92, 104, 120, 140, 164, 192, 224, 256, 288, 320, 352, 384, 416, 448, 480, 512};
 const uint16_t swb_offset_480_24[] = {0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 52, 60, 68, 80, 92, 104, 120, 140, 164, 192, 224, 256, 288, 320, 352, 384, 416, 448, 480};
 const uint16_t swb_offset_128_24[] = {0, 4, 8, 12, 16, 20, 24, 28, 36, 44, 52, 64, 76, 92, 108, 128};
 const uint16_t swb_offset_1024_16[] = {0,   8,   16,  24,  32,  40,  48,  56,  64,  72,  80,  88,  100, 112, 124, 136, 148, 160, 172, 184, 196, 212,
                                              228, 244, 260, 280, 300, 320, 344, 368, 396, 424, 456, 492, 532, 572, 616, 664, 716, 772, 832, 896, 960, 1024};
 const uint16_t swb_offset_128_16[] = {0, 4, 8, 12, 16, 20, 24, 28, 32, 40, 48, 60, 72, 88, 108, 128};
 const uint16_t swb_offset_1024_8[] = {0,   12,  24,  36,  48,  60,  72,  84,  96,  108, 120, 132, 144, 156, 172, 188, 204, 220, 236, 252, 268,
                                             288, 308, 328, 348, 372, 396, 420, 448, 476, 508, 544, 580, 620, 664, 712, 764, 820, 880, 944, 1024};
 const uint16_t swb_offset_128_8[] = {0, 4, 8, 12, 16, 20, 24, 28, 36, 44, 52, 60, 72, 88, 108, 128};

 static const uint16_t* swb_offset_1024_window[] = {
    swb_offset_1024_96, /* 96000 */
    swb_offset_1024_96, /* 88200 */
    swb_offset_1024_64, /* 64000 */
    swb_offset_1024_48, /* 48000 */
    swb_offset_1024_48, /* 44100 */
    swb_offset_1024_32, /* 32000 */
    swb_offset_1024_24, /* 24000 */
    swb_offset_1024_24, /* 22050 */
    swb_offset_1024_16, /* 16000 */
    swb_offset_1024_16, /* 12000 */
    swb_offset_1024_16, /* 11025 */
    swb_offset_1024_8   /* 8000  */
};

 static const uint16_t* swb_offset_512_window[] = {
    0,                 /* 96000 */
    0,                 /* 88200 */
    0,                 /* 64000 */
    swb_offset_512_48, /* 48000 */
    swb_offset_512_48, /* 44100 */
    swb_offset_512_32, /* 32000 */
    swb_offset_512_24, /* 24000 */
    swb_offset_512_24, /* 22050 */
    0,                 /* 16000 */
    0,                 /* 12000 */
    0,                 /* 11025 */
    0                  /* 8000  */
};

 static const uint16_t* swb_offset_480_window[] = {
    0,                 /* 96000 */
    0,                 /* 88200 */
    0,                 /* 64000 */
    swb_offset_480_48, /* 48000 */
    swb_offset_480_48, /* 44100 */
    swb_offset_480_32, /* 32000 */
    swb_offset_480_24, /* 24000 */
    swb_offset_480_24, /* 22050 */
    0,                 /* 16000 */
    0,                 /* 12000 */
    0,                 /* 11025 */
    0                  /* 8000  */
};

 static const uint16_t* swb_offset_128_window[] = {
    swb_offset_128_96, /* 96000 */
    swb_offset_128_96, /* 88200 */
    swb_offset_128_64, /* 64000 */
    swb_offset_128_48, /* 48000 */
    swb_offset_128_48, /* 44100 */
    swb_offset_128_48, /* 32000 */
    swb_offset_128_24, /* 24000 */
    swb_offset_128_24, /* 22050 */
    swb_offset_128_16, /* 16000 */
    swb_offset_128_16, /* 12000 */
    swb_offset_128_16, /* 11025 */
    swb_offset_128_8   /* 8000  */
};

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
const int32_t pow2_tab[] = {
    REAL_CONST(1.000000000000000), REAL_CONST(1.010889286051701), REAL_CONST(1.021897148654117), REAL_CONST(1.033024879021228), REAL_CONST(1.044273782427414), REAL_CONST(1.055645178360557),
    REAL_CONST(1.067140400676824), REAL_CONST(1.078760797757120), REAL_CONST(1.090507732665258), REAL_CONST(1.102382583307841), REAL_CONST(1.114386742595892), REAL_CONST(1.126521618608242),
    REAL_CONST(1.138788634756692), REAL_CONST(1.151189229952983), REAL_CONST(1.163724858777578), REAL_CONST(1.176396991650281), REAL_CONST(1.189207115002721), REAL_CONST(1.202156731452703),
    REAL_CONST(1.215247359980469), REAL_CONST(1.228480536106870), REAL_CONST(1.241857812073484), REAL_CONST(1.255380757024691), REAL_CONST(1.269050957191733), REAL_CONST(1.282870016078778),
    REAL_CONST(1.296839554651010), REAL_CONST(1.310961211524764), REAL_CONST(1.325236643159741), REAL_CONST(1.339667524053303), REAL_CONST(1.354255546936893), REAL_CONST(1.369002422974591),
    REAL_CONST(1.383909881963832), REAL_CONST(1.398979672538311), REAL_CONST(1.414213562373095), REAL_CONST(1.429613338391970), REAL_CONST(1.445180806977047), REAL_CONST(1.460917794180647),
    REAL_CONST(1.476826145939499), REAL_CONST(1.492907728291265), REAL_CONST(1.509164427593423), REAL_CONST(1.525598150744538), REAL_CONST(1.542210825407941), REAL_CONST(1.559004400237837),
    REAL_CONST(1.575980845107887), REAL_CONST(1.593142151342267), REAL_CONST(1.610490331949254), REAL_CONST(1.628027421857348), REAL_CONST(1.645755478153965), REAL_CONST(1.663676580326736),
    REAL_CONST(1.681792830507429), REAL_CONST(1.700106353718524), REAL_CONST(1.718619298122478), REAL_CONST(1.737333835273706), REAL_CONST(1.756252160373300), REAL_CONST(1.775376492526521),
    REAL_CONST(1.794709075003107), REAL_CONST(1.814252175500399), REAL_CONST(1.834008086409342), REAL_CONST(1.853979125083386), REAL_CONST(1.874167634110300), REAL_CONST(1.894575981586966),
    REAL_CONST(1.915206561397147), REAL_CONST(1.936061793492294), REAL_CONST(1.957144124175400), REAL_CONST(1.978456026387951), REAL_CONST(2.000000000000000)};

const int32_t log2_tab[] = {
    REAL_CONST(0.000000000000000), REAL_CONST(0.022367813028455), REAL_CONST(0.044394119358453), REAL_CONST(0.066089190457772), REAL_CONST(0.087462841250339), REAL_CONST(0.108524456778169),
    REAL_CONST(0.129283016944966), REAL_CONST(0.149747119504682), REAL_CONST(0.169925001442312), REAL_CONST(0.189824558880017), REAL_CONST(0.209453365628950), REAL_CONST(0.228818690495881),
    REAL_CONST(0.247927513443585), REAL_CONST(0.266786540694901), REAL_CONST(0.285402218862248), REAL_CONST(0.303780748177103), REAL_CONST(0.321928094887362), REAL_CONST(0.339850002884625),
    REAL_CONST(0.357552004618084), REAL_CONST(0.375039431346925), REAL_CONST(0.392317422778760), REAL_CONST(0.409390936137702), REAL_CONST(0.426264754702098), REAL_CONST(0.442943495848728),
    REAL_CONST(0.459431618637297), REAL_CONST(0.475733430966398), REAL_CONST(0.491853096329675), REAL_CONST(0.507794640198696), REAL_CONST(0.523561956057013), REAL_CONST(0.539158811108031),
    REAL_CONST(0.554588851677637), REAL_CONST(0.569855608330948), REAL_CONST(0.584962500721156), REAL_CONST(0.599912842187128), REAL_CONST(0.614709844115208), REAL_CONST(0.629356620079610),
    REAL_CONST(0.643856189774725), REAL_CONST(0.658211482751795), REAL_CONST(0.672425341971496), REAL_CONST(0.686500527183218), REAL_CONST(0.700439718141092), REAL_CONST(0.714245517666123),
    REAL_CONST(0.727920454563199), REAL_CONST(0.741466986401147), REAL_CONST(0.754887502163469), REAL_CONST(0.768184324776926), REAL_CONST(0.781359713524660), REAL_CONST(0.794415866350106),
    REAL_CONST(0.807354922057604), REAL_CONST(0.820178962415188), REAL_CONST(0.832890014164742), REAL_CONST(0.845490050944375), REAL_CONST(0.857980995127572), REAL_CONST(0.870364719583405),
    REAL_CONST(0.882643049361841), REAL_CONST(0.894817763307943), REAL_CONST(0.906890595608519), REAL_CONST(0.918863237274595), REAL_CONST(0.930737337562886), REAL_CONST(0.942514505339240),
    REAL_CONST(0.954196310386875), REAL_CONST(0.965784284662087), REAL_CONST(0.977279923499917), REAL_CONST(0.988684686772166), REAL_CONST(1.000000000000000)};

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
const uint8_t mes[] = {0x67, 0x20, 0x61, 0x20, 0x20, 0x20, 0x6f, 0x20, 0x72, 0x20, 0x65, 0x20, 0x6e, 0x20, 0x20, 0x20, 0x74,
                       0x20, 0x68, 0x20, 0x67, 0x20, 0x69, 0x20, 0x72, 0x20, 0x79, 0x20, 0x70, 0x20, 0x6f, 0x20, 0x63};

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
const int32_t drc_pow2_table[] = {COEF_CONST(0.5146511183), COEF_CONST(0.5297315472), COEF_CONST(0.5452538663), COEF_CONST(0.5612310242), COEF_CONST(0.5776763484), COEF_CONST(0.5946035575),
                                  COEF_CONST(0.6120267717), COEF_CONST(0.6299605249), COEF_CONST(0.6484197773), COEF_CONST(0.6674199271), COEF_CONST(0.6869768237), COEF_CONST(0.7071067812),
                                  COEF_CONST(0.7278265914), COEF_CONST(0.7491535384), COEF_CONST(0.7711054127), COEF_CONST(0.7937005260), COEF_CONST(0.8169577266), COEF_CONST(0.8408964153),
                                  COEF_CONST(0.8655365610), COEF_CONST(0.8908987181), COEF_CONST(0.9170040432), COEF_CONST(0.9438743127), COEF_CONST(0.9715319412), COEF_CONST(1.0000000000),
                                  COEF_CONST(1.0293022366), COEF_CONST(1.0594630944), COEF_CONST(1.0905077327), COEF_CONST(1.1224620483), COEF_CONST(1.1553526969), COEF_CONST(1.1892071150),
                                  COEF_CONST(1.2240535433), COEF_CONST(1.2599210499), COEF_CONST(1.2968395547), COEF_CONST(1.3348398542), COEF_CONST(1.3739536475), COEF_CONST(1.4142135624),
                                  COEF_CONST(1.4556531828), COEF_CONST(1.4983070769), COEF_CONST(1.5422108254), COEF_CONST(1.5874010520), COEF_CONST(1.6339154532), COEF_CONST(1.6817928305),
                                  COEF_CONST(1.7310731220), COEF_CONST(1.7817974363), COEF_CONST(1.8340080864), COEF_CONST(1.8877486254), COEF_CONST(1.9430638823)};
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
static const hcb_t*          hcb_table[] = {0, hcb1_1, hcb2_1, 0, hcb4_1, 0, hcb6_1, 0, hcb8_1, 0, hcb10_1, hcb11_1};
static const hcb_2_quad_t*   hcb_2_quad_table[] = {0, hcb1_2, hcb2_2, 0, hcb4_2, 0, 0, 0, 0, 0, 0, 0};
static const hcb_2_pair_t*   hcb_2_pair_table[] = {0, 0, 0, 0, 0, 0, hcb6_2, 0, hcb8_2, 0, hcb10_2, hcb11_2};
static const hcb_bin_pair_t* hcb_bin_table[] = {0, 0, 0, 0, 0, hcb5, 0, hcb7, 0, hcb9, 0, 0};
static const uint8_t         hcbN[] = {0, 5, 5, 0, 5, 0, 5, 0, 5, 0, 6, 5};
static const uint8_t unsigned_cb[] = {0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; /* defines whether a huffman codebook is unsigned or not  Table 4.6.2 */
static const int32_t hcb_2_quad_table_size[] = {0, 114, 86, 0, 185, 0, 0, 0, 0, 0, 0, 0};
static const int32_t hcb_2_pair_table_size[] = {0, 0, 0, 0, 0, 0, 126, 0, 83, 0, 210, 373};
static const int32_t hcb_bin_table_size[] = {0, 0, 0, 161, 0, 161, 0, 127, 0, 337, 0, 0};
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
static const int32_t pow05_table[] = {
    COEF_CONST(1.68179283050743), /* 0.5^(-3/4) */
    COEF_CONST(1.41421356237310), /* 0.5^(-2/4) */
    COEF_CONST(1.18920711500272), /* 0.5^(-1/4) */
    COEF_CONST(1.0),              /* 0.5^( 0/4) */
    COEF_CONST(0.84089641525371), /* 0.5^(+1/4) */
    COEF_CONST(0.70710678118655), /* 0.5^(+2/4) */
    COEF_CONST(0.59460355750136)  /* 0.5^(+3/4) */
};